VBA : RECOPIE AUTOMATIQUE et SUPPRESSION LIGNES COMPORTANT UN MOT PRECIS

Titou99

XLDnaute Junior
Bonjour à tous,

Quelque soucis aujourd'hui je recherche une solution depuis 8h ce matin pour d'une part :

- Supprimer automatiquement, avec un code VBA, des lignes de plusieurs colonnes (C,D,E et F) comportant le mot "Résultat".

D'autre part :

- Recopier des cellules vers le bas automatiquement des colonnes C,D et E qui comporte des cellules vides

Je m'explique : Nous sommes par exemple dans la colonne C je voudrais que si cellule vide alors remonter à la première cellule pleine qui voit et recopier son contenu vers le bas jusqu'à la première cellule qui voit pleine

Je vous joint un exemple pour la recopie
 

Pièces jointes

  • exemple.xlsx
    12.1 KB · Affichages: 9

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Oui tu me sembles fatigué car tu ne vois plus l'essentiel. L'onglet c'est Feuil1 dans ce fichier et pas Feuil9, Il te faut penser à adapter si tu mets ce code dans un autre fichier.
Le code adapté au 3 colonnes C, D et E :

VB:
Sub Recopie()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)

Set O = Worksheets("Feuil1") 'défint l'onglet O '<==== ici il faut adapter au nom de l'onglet
DL = O.Cells(Application.Rows.Count, "C").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 6 To DL - 1 'boucle 1 : sur toutes les lignes I de 6 à DL -1
    For J = 3 To 5 'boucle 2 : sur le colonnes 3 à 5 (=> colonne C à E)
        'si la cellule en-dessous est vide elle prend la valeur de la cellule de la boucle
        If O.Cells(I + 1, J).Value = "" Then O.Cells(I + 1, J).Value = O.Cells(I, J).Value
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 175
Membres
112 677
dernier inscrit
Justine11