Je travaille depuis deux semaines sur un fichier excel. J'ai réussi, à l'aide d'un des membre de ce forum, mes macro, sauf la dernière ^^.
Mon fichier Excel étant trop imposant, je ne pourrais vous le partager, et j'en suis désolé. je vais essayer d'être claire pour que vos réponses soient les plus abouties possible.
Je posséde divers renseignements sur la plage A137433. Je compare la colonne B avec des références que j'ajoute par un simple Copier/coller dans la colonne R (38 données max). Lorsque celles-ci sont similaires, j'ajoute grâce à un programme le caractère "x" sur la même ligne que la référence se situant dans la colonne B. Ce qui implique bien évidemment, que le nombre de "x" varie à chaque comparaison.
Après des heures à m'acharner sur le problème sans y parvenir, et étant toujours au point mort, voici ce que j'aimerai obtenir: à l'aide d'un bouton de commande, j'aimerai copier l'entièreté des lignes (Colonne A à Colonne P uniquement) possédant le caractère "x" en colonne Q de la feuille 1 ( se nommant "Fichier"), et les afficher, les unes à la suite des autres, sur la feuille2 (se nommant "Résultat").
Le programme donnerait plus ou moins ceci :
Code:
Dim i as Long
Dim j as Long
For i = 1 to To [Q65536].End(xlUp).Row 'Parcours de la colonne Q
If Cells(i,18).Value = "x" Then ' Détéction de la présence du caractère
'Copier la plage Ai:Pi de la feuille 1
'Coller sur la plage Aj:Pj de la feuille 2
j = j +1
End If
Next i
Re : Copier plusieurs lignes de la feuil1 à la feuil2 suivant la présence d'1 caract
Bonjour,
regarde peut être ceci :
Code:
Dim i As Long
For i = 1 To [Q65536].End(xlUp).Row 'Parcours de la colonne Q
If Cells(i, 17).Value = "x" Then
Cells(i, 1).Resize(, 17).Copy Destination:=Sheets("Feuil2").Range("A65536").End(xlUp)(2)
End If
Next i
Re : Copier plusieurs lignes de la feuil1 à la feuil2 suivant la présence d'1 caract
Je n'ai pas vu que tu m'avais répondu, mais en m'entetant à chercher j'ai trouvé.
Voilà mon programme
Code:
Private Sub CommandButton9_Click()
'Déclaration des variables
Dim i As Long
Dim j As Long
Dim plage As Range
Application.ScreenUpdating = False
'PROGRAMME réaliser par le bouton Filtre
j = 1
For i = 13 To [Q65536].End(xlUp).Row
If Cells(i, 17).Value = "x" Then
Set plage = Range("A" & i & ":P" & i)
plage.Copy
Sheets("Résultat").Select
ActiveSheet.Cells(j, 1).Select
ActiveSheet.Paste
j = j + 1
End If
Next i
Application.ScreenUpdating = True
End Sub