WhiteRabbit
XLDnaute Nouveau
Bonjour à tous,
Je débute depuis quelques jours sur le VBA et j'ai récupéré il y a peu un fichier dans lequel une macro à pour fonction de parcourir le contenu d'un tableau dans un onglet et en générer un fichier txt bien formé.
La structure de la fonction est assez simple :
J'ai ajouté les deux lignes en bleu afin de créer un filtre qui lorsque la cellule A4 de l'onglet parcouru contient "SAIN" alors la macro colle.
Et je voudrais que lorsque la valeur n'est pas "SAIN" alors la macro passe à une autre cellule et continue de coller ou non.
Le filtre fonctionne bien quand A4 est SAIN, mais dès que je le change, alors la macro bug, et le debugger se place sur la ligne en orange que je n'arrive pas à interpréter.
Dois je ajouter un Else avec une instruction particulière indiquant à la macro de sauter la ligne en cours et de continuer ?
Merci pour votre aide
Je débute depuis quelques jours sur le VBA et j'ai récupéré il y a peu un fichier dans lequel une macro à pour fonction de parcourir le contenu d'un tableau dans un onglet et en générer un fichier txt bien formé.
La structure de la fonction est assez simple :
Sub CreationCSV(nom)
Application.ScreenUpdating = False
Sheets("temp").Select
' recopie des données du tableau vers l'onglet temporaire
Sheets("S" & nom).Select
Range("B3").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(1, 0).Select
A = ActiveCell.Address
Range("B4").Select
Selection.End(xlDown).Select
b = ActiveCell.Address
Range(A & ":" & b).Select
Selection.Copy
Sheets("temp").Select
Range("A2").Select
If Worksheets("S" & nom).Range("A4").Value = "SAIN" Then
ActiveSheet.Paste
End If
Application.CutCopyMode = False
'écriture de la dernière ligne
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlToLeft).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "Z"
NbLigne = ActiveCell.Row - 2
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = NbLigne
'détermination du nombre de champ dans la table:
Sheets("S" & nom).Select
Range("A3").Select
Selection.End(xlToRight).Select
NbChamp = ActiveCell.Column
If CMP10 = True Then
enregistrementCMP10 nom, NbChamp
Else
enregistrement nom, NbChamp
End If
Sheets("Intro").Select
Application.ScreenUpdating = True
End Sub
J'ai ajouté les deux lignes en bleu afin de créer un filtre qui lorsque la cellule A4 de l'onglet parcouru contient "SAIN" alors la macro colle.
Et je voudrais que lorsque la valeur n'est pas "SAIN" alors la macro passe à une autre cellule et continue de coller ou non.
Le filtre fonctionne bien quand A4 est SAIN, mais dès que je le change, alors la macro bug, et le debugger se place sur la ligne en orange que je n'arrive pas à interpréter.
Dois je ajouter un Else avec une instruction particulière indiquant à la macro de sauter la ligne en cours et de continuer ?
Merci pour votre aide
Dernière édition: