Copier et ajouter une ligne en vba

Résolu
F76 - 15 janv. 2024 à 14:40
 f76 - 18 janv. 2024 à 13:53

Bonjour,

 en VBA je voudrais dupliquer la ligne selon 2 critères se trouvant dans 2 cellules différentes sur la même ligne.

Si 2023 ou 2024 dans les 2 cellules alors passer à la ligne suivantes et tester à nouveau si 2023 et 2024 alors insérer et copier la ligne.

Puis modifier dans cette nouvelle ligne ou la précédente peu importe la cellule 2023 en 2024.

Merci pour vos réponses

A voir également:

5 réponses

yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
15 janv. 2024 à 16:19

bonjour,

il serait préférable que tu fournisses un fichier exemple avec une feuille "avant" et une feuille "après".

0

Bonjour,

Désolé mais je ne sais pas comment faire pour insérer un fichier.

J'ai ces données dans les colonnes A,B,C:          Je voudrais obtenir:

A            B       C                                                    A           B          C

2023    2024    A                                                2023     2023         A

2023    2023    B                                                2024    2024         A

2024    2024    C                                               2023      2023        B

                                                                          2024      2024        C

Lorsque j'ai une ligne avec 2 années différentes je la duplique et je change les années sur chaque lignes comme pour le client A par exemple.





 

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
17 janv. 2024 à 12:15

C'est plus clair ainsi.  Suggestion:

Dim fl As Worksheet, ligne As Long
Set fl = ActiveSheet
ligne = 2
Do While fl.Cells(ligne, 1) <> ""
    If fl.Cells(ligne, 1) <> fl.Cells(ligne, 2) Then
        fl.Cells(ligne, 1).EntireRow.Insert
        fl.Cells(ligne, 3) = fl.Cells(ligne + 1, 3)
        fl.Cells(ligne, 1) = fl.Cells(ligne + 1, 2)
        fl.Cells(ligne, 2) = fl.Cells(ligne + 1, 2)
        fl.Cells(ligne + 1, 2) = fl.Cells(ligne + 1, 1)
        ligne = ligne + 1
    End If
    ligne = ligne + 1
Loop
0

C'est super génial, merci beaucoup.

0

Bonjour,

J'ai voulu faire un essai en mettant 20231201 dans la colonne A et 20241205 dans la colonne B et faire la comparaison sur les 4 premier chiffres.

J'ai modifier la macro initiale comme ci-dessous mais la ligne de comparaison ne fonctionne pas, le reste est ok:

Sub test()
Dim fl As Worksheet
Set fl = ActiveSheet
ligne = 1
Do While fl.Cells(ligne, 1) <> ""
     If Cells(Left(ligne, 1), 4) <> Cells(Left(ligne, 2), 4) Then
        fl.Cells(ligne, 1).EntireRow.Insert
        fl.Rows(ligne + 1).Copy fl.Rows(ligne)
        fl.Cells(ligne, 1) = 20241001
        fl.Cells(ligne + 1, 2) = 20231231
        ligne = ligne + 1
    End If
    ligne = ligne + 1
Loop
End Sub

Pouvez-vous me dire ce qui ne va pas svp?

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
18 janv. 2024 à 12:00
If Left(Cells(ligne, 1), 4) <> Left(Cells(ligne, 2), 4) Then
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

C'est parfait, merci beaucoup pour votre aide.

0