PROBLEME VBA copier ligne avec condition
benwares
Messages postés
3
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
J'ai un probleme assez urgent pr effectuer un travail.
Sur une feuille A, jai une liste avec pour la colonne X differente valeur type char (soit "ouvert", "fermé",.......).
Je souhaite copier sur une feuille B toute les lignes de la feuille A dont la colonne X a la valeur "fermé".
Si vous pouvez m'aider ca me serait d'une grande aide.
Merci d'avance.
J'ai un probleme assez urgent pr effectuer un travail.
Sur une feuille A, jai une liste avec pour la colonne X differente valeur type char (soit "ouvert", "fermé",.......).
Je souhaite copier sur une feuille B toute les lignes de la feuille A dont la colonne X a la valeur "fermé".
Si vous pouvez m'aider ca me serait d'une grande aide.
Merci d'avance.
A voir également:
- PROBLEME VBA copier ligne avec condition
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Comment copier une vidéo youtube - Guide
- Mètre en ligne - Guide
- Super copier - Télécharger - Gestion de fichiers
3 réponses
Bonjour benwares
Je te propose ce code, à adapter en fonction du nom exact de tes onglets etc.
Tiens nous au courant si c'est bien ce que tu cherches !
Je te propose ce code, à adapter en fonction du nom exact de tes onglets etc.
Sub Copier_Ouvert()
Dim Cellule_a_copier As Range
Dim Fin_Colonne As Range
Sheets("A").Select 'Sélectionne ton onglet où sont tes valeurs
Set Plage = Range("X2", Range("X2").End(xlDown)) 'Sélectionne toutes les cellules de X2 jusqu'au bout de la colonne
For Each Cellule_a_copier In Plage
If (Cellule_a_copier.Text = "Ouvert") Then 'Si la celulle contient le texte
Sheets("A").Select
Rows(Cellule_a_copier.Row).EntireRow.Copy 'Alors on copie
Sheets("B").Select 'Sélectionne ton onglet où il faut coller les valeurs
Set Fin_Colonne = Range("X65536").End(xlUp) 'On va chercher la dernière ligne renseignée
Fin_Colonne.Offset(1, 0).Select 'On se déplace d'une ligne en dessous
Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteValues 'On colle la ligne
End If
Next
End Sub
Tiens nous au courant si c'est bien ce que tu cherches !
Bonjour,
Peut-être un peu plus "conventionnel" ?
Si tu veux, par exemple, faire la même chose mais avec "Fermer" tu change juste la valeur de Comp.
A+
Peut-être un peu plus "conventionnel" ?
Sub copieLigne()
Dim LigA As Long, LigB As Long
Dim Comp As String 'Pourrait être mis en paramètre dans l'appel de la sub.
Comp = "Ouvert" 'Alors supprimer cette ligne
LigB = 4 '1ère ligne ou copier
With Sheets("Feuil1")
For LigA = 1 To .Range("X65536").End(xlUp).Row
If .Cells(LigA, "X") = Comp Then
.Rows(LigA).Copy Sheets("Feuil2").Rows(LigB)
LigB = LigB + 1
End If
Next LigA
End With
End Sub
Si tu veux, par exemple, faire la même chose mais avec "Fermer" tu change juste la valeur de Comp.
A+
Ca marche nikel! merci beaucoup. je sais pas pourquoi mais je comprends la logique de programmation une fois faite mais je n'arrive pas à reussir un programme qui fonctionne.
En tout cas merci bcp!!