copier et modifier des lignes en fonction du chiffre

jejeaure

XLDnaute Junior
Bonjour je voudrais savoir s'il était possible de copier uniquement les lignes qui ont le chiffre 1 dans la colonne C sachant que le nombre de lignes avec un 1 peu évoluer et les coller après la dernière ligne en mettant 2 à la place du 1. En espérant avoir été compris Merci d'avance de votre aide Jérôme
 

Pièces jointes

  • Classeur1.xlsx
    36.8 KB · Affichages: 28
  • Classeur1.xlsx
    36.8 KB · Affichages: 33
  • Classeur1.xlsx
    36.8 KB · Affichages: 31

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier et modifier des lignes en fonction du chiffre

Bonjour Jérôme, bonjour le forum,

Essaie comme ça :
Code:
Sub Macro1()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim LI As Long 'déclare la variable LI (LIgne)
Dim I As Long 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim TBL() As Variant 'déclare le tableau de variable TBL (TaBleau des Lignes)

Set O = Sheets("MAJDISPO") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 3).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 3 (=C) de l'onglet O
For LI = 1 To DL 'boucle des lignes 1 à DL
    If O.Cells(LI, 3).Value = 1 Then 'condition : si la cellule en colonne 3 (=C) de la ligne vaut 1
        ReDim Preserve TBL(3, I) 'redimensionne le tableau TBL
        TBL(0, I) = O.Cells(LI, 1) 'récupère la valeur de la colonne 1 (=A) de la ligne
        TBL(1, I) = O.Cells(LI, 2) 'récupère la valeur de la colonne 2 (=B) de la ligne
        TBL(2, I) = 2 'emplace le 1 par un 2
        TBL(3, I) = O.Cells(LI, 4) 'récupère la valeur de la colonne 4 (=D) de la ligne
        I = I + 1 'incrémente I
    End If 'fin de la condition
Next LI 'prochaine ligne de la boucle

'on se retrouve avec un tableau TBL de I lignes et 4 colonnes (de 0 à 3)
For I = 0 To UBound(TBL, 2) 'boucle 1 : sur toutes les ligne du tableau TBL
    For J = 1 To 4 'boucle 2 : sur les 4 cellules de la ligne
        O.Cells(DL + I, J).Value = TBL(J - 1, I) 'renvoie la variable du tableau TBL dans la cellule correspondant à la fin du tableau
    Next J 'prochaine cellule de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz