Salut Flavienp,
Pour supprimer une ligne pas trop de soucis :
Sub SUPPRIME_VIDE()
Dim BALAYAGE_LIGNE As Integer
Dim LIGNE_MIN As Integer, LIGNE_MAX As Integer
Dim CHECK_LIGNE_MAX As Integer
LIGNE_MIN = 100
LIGNE_MAX = 108
‘J’utilise un check pour bien vérifier qu’on ne dépasse pas la ligne max de départ car la ligne max 108 du départ une fois 1 ligne supprimé, devient la ligne 107 du fichier excel et donc dans la zone 100-108 ce que l’on ne veut pas.
CHECK_LIGNE_MAX = LIGNE_MAX
For BALAYAGE_LIGNE = LIGNE_MIN To LIGNE_MAX
If BALAYAGE_LIGNE > CHECK_LIGNE_MAX Then
Exit For
End If
'ici on vérifie si la colonne 3 est vide
If Cells(BALAYAGE_LIGNE, 3).Value = "" Then
Rows(BALAYAGE_LIGNE).Select
Selection.Delete Shift:=xlUp
BALAYAGE_LIGNE = BALAYAGE_LIGNE - 1
CHECK_LIGNE_MAX = CHECK_LIGNE_MAX - 1
End If
Next
End Sub
Pour le point 2, avec l’enregistreur de macro cela fonctionne très bien, par contre ce n’est pas forcément ce que tu avais en tête comme résultat ^^
Range("A6:B6,A13:B13").Select
Selection.Copy
Range("A18").Select
ActiveSheet.Paste
Si cela ne te convient pas, fait un simple copier/coller d’une ligne via l’enregistreur des case 1 à 99 puis 109 à 200, tu le feras en 2 étapes et pas en 1 seul mais si cela fonctionne sans être optimisé ça suffira
ECG