Coller toute la ligne sous une condition
Statisticien
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
Statisticien Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Statisticien Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et tous,
De nouveau parmi vous, sollicitant encore une autre fois votre aide. J'en profite pour vous remercier.
je voudrais sous une condition sur la dexième colonne (dans ma feuille source), coller l'entière ligne dans une autre feuille( dans ma feuille cible), j'ai appliqué le code suivant :
Alors il fait quoi ? il ne copie que la dernière ligne de mon fichier source et il la colle à partir de la deuxième cellule de mon fichier cible.
Alors que je voudrais qu'il copie toutes lignes (dont la Range("B" & i) commence par 717 et non pas uniquement la dernière). Et qu'il la colle dans ma feuille cible, à partir de la première ligne vide et ds la cellule qui figure dans la première colonne.
Une proposition ?
Je vous remercie d'avance.
Cordialement,
EDIT : Ajout des balises de code
De nouveau parmi vous, sollicitant encore une autre fois votre aide. J'en profite pour vous remercier.
je voudrais sous une condition sur la dexième colonne (dans ma feuille source), coller l'entière ligne dans une autre feuille( dans ma feuille cible), j'ai appliqué le code suivant :
Dim i As Integer Dim dernligne As Long dernligne = Range("A" & Rows.Count).End(xlUp).Row For i = 2 To dernligne If Range("B" & i).Value Like "717*" Then Sheets("spfin016").Rows(i).Copy Sheets("new831201").Range("A" & Rows.Count).End(xlUp)(2)
Alors il fait quoi ? il ne copie que la dernière ligne de mon fichier source et il la colle à partir de la deuxième cellule de mon fichier cible.
Alors que je voudrais qu'il copie toutes lignes (dont la Range("B" & i) commence par 717 et non pas uniquement la dernière). Et qu'il la colle dans ma feuille cible, à partir de la première ligne vide et ds la cellule qui figure dans la première colonne.
Une proposition ?
Je vous remercie d'avance.
Cordialement,
EDIT : Ajout des balises de code
A voir également:
- Coller toute la ligne sous une condition
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
- Historique copier coller - Guide
2 réponses
Bonjour Satisticien, bonsjour le forum,
Peut-être comme ça, un code très rapide :
Peut-être comme ça, un code très rapide :
Sub Macro1() Dim S As Object 'déclare la variable S (onglet Spfin016) Dim N As Object 'déclare la variable N (onglet New831201) Dim DL As Long 'déclare la variable DL (Dernière Ligne) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim I As Integer 'déclare la variable I (Incrément) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Set S = Sheets("spfin016") 'définit l'onglet S Set N = Sheets("new831201") 'définit l'onglet N DL = S.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet S TC = S.Range("A1").CurrentRegion 'définit le tableau TC (à adapter éventuellement) For I = 2 To UBound(TC, 1) 'boucle sur toutes les lignes du tableau TC (en partant de la seconde) If TC(I, 2) Like "717*" Then 'condition : si la valeur en colonne 2 (==> B) du tableau TC commence par "717" 'définit la cellule de destination DEST (A1 si A1 est vide, sinon, la première cellule vide de la colonne A de l'ongle N) Set DEST = IIf(N.Range("A1").Value = "", N.Range("A1"), N.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)) DEST.Resize(1, UBound(TC, 2)).Value = Application.Index(TC, I) 'récupère dans dest la ligne du tableau TC End If 'fin de la condition Next I 'prochaine ligne de la boucle End Sub
Merci pour ton aide ThauTheme. Mais dit moi en utilisant ce code :
For i = 1 To 20000
If Cells(i, 2).Value Like "717*" Then Rows(i).Copy Sheets("new831201").Cells(Rows.Count, 1).End(xlUp)(2)
Next
ça marche. Maintenant, ma question : je voudrais copier la ligne i à partir de la deuxième cellule. Comment faire ?
For i = 1 To 20000
If Cells(i, 2).Value Like "717*" Then Rows(i).Copy Sheets("new831201").Cells(Rows.Count, 1).End(xlUp)(2)
Next
ça marche. Maintenant, ma question : je voudrais copier la ligne i à partir de la deuxième cellule. Comment faire ?