J'essaye en vain de faire fonctionner ce code VBA, il doit y avoir une erreur mais je ne vois pas ou... Ce code ne fonctionne qu'une fois alors que je lui demande de boucler jusqu’à la ligne 200 ou jusqu’à la première cellule vide de la colonne K. Si quelqu'un peu jeter un coup d’œil...
Merci par avance
Yannick
VB:
Sub Rectangle1_Cliquer()
'
'
'Sélection de la feuille Listing complet
Sheets("Listing complet").Select
Range("K5:K200").Select
'
'Vérification du critère de sélection indice Zone 1, 2 ou 3
Do While ActiveCell.Value <> "" 'Boucle tant qu'on ne tombe pas sur une cellule vide
If ActiveCell.Value Like "1" Then
ligne = ActiveCell.Row 'on stocke le numéro de ligne
controle = Cells(ligne, 3).Value 'on stocke le numéro fi pour vérification des doublons
'copie de la ligne (colonne A à Y)
Range(Cells(ligne, 1), Cells(ligne, 14)).Copy
Sheets("FS Alerte Z1").Activate
Range("A3").Select
'Collage de la ligne
ActiveSheet.Paste
Sheets("FS Alerte Z1").Select
ActiveCell.Offset(1, 0).Select
'pas de 1 dans la cellule
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
Avant toute réponse VBA, il faudrait déjà urgemment répondre à ceci, non ?
Extrait de la charte du forum
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.
Simplement pour savoir si à cette heure de la journée, mon ami Staple a pris son petit déjeuner, ou s'est brossé les dents, ou vient de sortir de la douche ou encore rentre du cinéma où il a vu le dernier... ce qu'il veut en fait !
Je suis en train de manger une tranche pain azyme sur laquelle j'ai déposé une couche de mauvais fromage, saupoudrée de spiruline et de levure de bière.
J'ingurgite cet aliment tout en écoutant ceci dans VLC.
Dans mon browser, je surfe sur XLD.
J'ai enfilé mon pyjama en pilou
La température de la pièce est de 19/20°.
Pour revenir à la question, encore une boucle simplement évitée avec le code suivant
VB:
Sub Macro1()
With ActiveSheet.ListObjects("Tableau1")
.Range.AutoFilter Field:=11, Criteria1:="1"
.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("FS Alerte Z1").Range("A1").PasteSpecial xlValues
End Sub
NB: J'ai posté du VBA même si le fichier n'a pas été anonymisé, vu que cela semble ne déranger personne...et qu'il est désormais trop tard.
Je suis en train de manger une tranche pain azyme sur laquelle j'ai déposé une couche de mauvais fromage, saupoudrée de spiruline et de levure de bière.
J'ingurgite cet aliment tout en écoutant ceci dans VLC.
Dans mon browser, je surfe sur XLD.
J'ai enfilé mon pyjama en pilou
La température de la pièce est de 19/20°.
Pour revenir à la question, encore une boucle simplement évitée avec le code suivant
VB:
Sub Macro1()
With ActiveSheet.ListObjects("Tableau1")
.Range.AutoFilter Field:=11, Criteria1:="1"
.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("FS Alerte Z1").Range("A1").PasteSpecial xlValues
End Sub
NB: J'ai posté du VBA même si le fichier n'a pas été anonymisé, vu que cela semble ne déranger personne...et qu'il est désormais trop tard.
Super ! ça fonctionne nickel ! J'ai pas compris comment excel détermine que tableau1 c'est le tableau de ma première feuille mais ça fait le boulot !!!
e suis en train de manger une tranche pain azyme sur laquelle j'ai déposé une couche de mauvais fromage, saupoudrée de spiruline et de levure de bière.
J'ingurgite cet aliment tout en écoutant ceci dans VLC.
Dans mon browser, je surfe sur XLD.
J'ai enfilé mon pyjama en pilou
La température de la pièce est de 19/20°.
Sub Macro2()
Dim i
On Error Resume Next
Feuil4.Cells.Clear: Feuil5.Cells.Clear: Feuil6.Cells.Clear
Application.ScreenUpdating = False
For i = 1 To 3
With Worksheets("Listing complet").ListObjects("tableau1")
.Range.AutoFilter Field:=11, Criteria1:=i
.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("FS Alerte Z" & i).Range("A1").PasteSpecial xlValues
Next
With Worksheets("Listing complet")
.ListObjects("Tableau1").Sort.SortFields.Clear: .ShowAllData: .Select
End With
End Sub
Je teste depuis un moment le code de Staple1600 qui fonctionne mais qui me pose un petit problème. Je dois faire d'autres manipulations sur ce fichier et une fois le code exécuté je n’arrive plus a afficher l'ensemble de mes lignes.
J'ai essayé plusieurs modifications sans succès, avec la dernière modification j'arrive de façon aléatoire à afficher mes lignes mais je ne sais pas pourquoi elles ne s'affichent pas à chaque fois. Quelqu'un aurait il une idée?
Je remet le fichier en pièce jointe.