Suppression de lignes qui ne marche pas

Bonjour !

Voilà la situation : Je souhaite concaténer les colonnes A et AE de la première feuille dans la colonne C de la deuxième. Peut-être que concaténer n'est pas le mot ! Si les cellules A1 et AE1 ne sont pas vide toutes les deux, il faudrait que dans la colonne C ça soit A1 puis AE1 en dessous (et ainsi de suite).

image

Voici ce qu'arrive à faire mon code actuellement, je vous l'accorde ce n'est peut-être pas la meilleure méthode pour le faire, je suis désolée je débute en VBA.

Comme vous pouvez le constater, il y a des lignes vides que je souhaite supprimer mais malgré plusieurs essais de lignes de code rien ne marche ...

Pourriez-vous m'indiquer mon erreur ?

Merci

Code ci-dessous et fichier excel en pj

Sub plan()
' Programme pour le plan d'action

 Worksheets("ACTION_PLAN").Range("A3:K100").ClearContents
Worksheets("ACTION_PLAN").Range("A3:K100").Interior.ColorIndex = 2
Dim dernierLigne As Long

    ' Trouver la dernière ligne avec des données dans la colonne A de la feuille source

    dernierLigne = 100 'feuilleSource.Cells(feuilleSource.Rows.Count, 1).End(xlUp).Row

'on prend les cellules de AE quand vide, test en colonne 2 pour pas gêner la 1
For i = 3 To dernierLigne
    Worksheets("ACTION_PLAN").Cells(i, 1) = Worksheets("HAZOP_test").Cells(i, 1)
    If Worksheets("HAZOP_test").Cells(i, 1) <> "" And Worksheets("HAZOP_test").Cells(i, 31) <> "" Then
       Worksheets("ACTION_PLAN").Cells(i + 1, 2).EntireRow.Insert
        Worksheets("ACTION_PLAN").Cells(i + 1, 2) = Worksheets("HAZOP_test").Cells(i, 31)
    End If
    If Worksheets("HAZOP_test").Cells(i, 1) = "" Then
        Worksheets("ACTION_PLAN").Cells(i + 2, 2) = Worksheets("HAZOP_test").Cells(i, 31)
     End If
    If IsEmpty(Worksheets("ACTION_PLAN").Cells(i, 1)) And IsEmpty(Worksheets("ACTION_PLAN").Cells(i, 2)) Then
        Worksheets("ACTION_PLAN").Cells(i, 1).EntireRow.Delete ' ligne qui pose problème
    End If
    Next i
' on prend les colonnes 1 et 2 puis on refait dans la 3 ième
For i = 3 To 30
    Worksheets("ACTION_PLAN").Cells(i, 3) = Worksheets("ACTION_PLAN").Cells(i, 1)
    Worksheets("ACTION_PLAN").Cells(i, 3).Interior.ColorIndex = 15
    Worksheets("ACTION_PLAN").Cells(i, 3).Font.ColorIndex = 1
    If Worksheets("ACTION_PLAN").Cells(i, 3) = "" Then
        Worksheets("ACTION_PLAN").Cells(i, 3) = Worksheets("ACTION_PLAN").Cells(i, 2)
        Worksheets("ACTION_PLAN").Cells(i, 3).Interior.ColorIndex = 2
    End If
    If Worksheets("ACTION_PLAN").Cells(i, 3) = "" Then
        Worksheets("ACTION_PLAN").Cells(i, 3).EntireRow.Delete
    End If
Next i

End Sub
13classeur2.xlsm (23.33 Ko)

Bonjour,

Pour éviter les décalages quand on supprime des lignes, il faut commencer par la dernière ligne en remontant. Essai avec :

For i = 30 To 3 Step -1

Daniel

Malheureusement ça n'a rien changé

J'ai essayé de faire un enregistrement d'une macro (rechercher et sélectionner les cellules vides puis supprimer), ça marche bien mais j'aimerais comprendre pourquoi mon code n'a pas marché.

Merci pour ton aide, je ne veux pas t'embêter trop avec ça !

Rechercher des sujets similaires à "suppression lignes qui marche pas"