PROBLEME VBA copier ligne avec condition
benwares
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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!!