Microsoft 365 Effacer le contenu de cellules si une autre cellule est vide

Olihoes

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant en Excel et je n'arrive pas à trouver ce que je recherche vraiment sur le forum.

J'ai un tableau contenant des colonnes de D à Q (1 colonne par véhicule) dans lequel chaque jour de l'année est divisé en 3 lignes :
La première contient le nombre de litre que le chauffeur à pris, la seconde l'heure et la troisième le nom du chauffeur.

J'aimerai un bouton qui fasse en sorte que quand la cellule contenant le nombre de litres est vide les 2 cellules du dessous (heure et nom) se vident aussi.
(Pour qu'il ne reste donc au final dans mon tableau que le contenu des cellules des jours où le chauffeur a fait son plein avec l'heure et son nom)

Je vous joins mon début de tableau dans lequel j'ai juste indiqué des litres pour le début de l'année pour pouvoir tester.

J'espère ne pas avoir été trop brouillon dans mon explication…


Merci d'avance.

Olivier
 

Pièces jointes

  • Tableau pleins chauffeurs.xlsx
    142.8 KB · Affichages: 8
Solution
Bonjour Olihoes, et bienvenu sur XLD, bonjour Phil,
Un essai en PJ avec cette macro :
VB:
Sub Nettoyage()
Dim L%, C%, Tablo
Application.ScreenUpdating = False
Tablo = Range("A9:Q" & 2 + [A10000].End(xlUp).Row)
For L = 1 To UBound(Tablo) Step 3
    For C = 4 To UBound(Tablo, 2)
        If Tablo(L, C) = "" Then
            Tablo(L + 1, C) = ""
            Tablo(L + 2, C) = ""
        End If
    Next C
Next L
[A9].Resize(UBound(Tablo, 1), UBound(Tablo, 2)) = Tablo
End Sub

Phil69970

XLDnaute Barbatruc
Bonjour @Olihoes et bienvenu sur XLD

J'espère ne pas avoir été trop brouillon dans mon explication…
Perdu .....

Les heures dans ton fichier sont générées aléatoirement et en plus elle change à chaque changement d'une cellule de la feuille cela n'a aucun sens pour moi alors explique le concept ?????
Quelle est l’intérêt de faire comme cela ?

Et si l'heure n'a pas d'importance autant s'en passer et de mettre quelque comme chose genre "Plein fait" à la place.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Olihoes, et bienvenu sur XLD, bonjour Phil,
Un essai en PJ avec cette macro :
VB:
Sub Nettoyage()
Dim L%, C%, Tablo
Application.ScreenUpdating = False
Tablo = Range("A9:Q" & 2 + [A10000].End(xlUp).Row)
For L = 1 To UBound(Tablo) Step 3
    For C = 4 To UBound(Tablo, 2)
        If Tablo(L, C) = "" Then
            Tablo(L + 1, C) = ""
            Tablo(L + 2, C) = ""
        End If
    Next C
Next L
[A9].Resize(UBound(Tablo, 1), UBound(Tablo, 2)) = Tablo
End Sub
 

Pièces jointes

  • Tableau pleins chauffeurs.xlsm
    292 KB · Affichages: 1

Olihoes

XLDnaute Nouveau
Un grand merci Sylvanu, cela semble fonctionner parfaitement :)

Et Phil69970 oui je sais que cela semble bizarre mes heures qui changent aléatoirement mais en fait je dois faire des tableau pour des années précédentes où les chauffeurs n'indiquaient pas l'heure donc j'invente un peu :)


Merci pour votre aide super rapide :)

 

CHRIS1945

XLDnaute Occasionnel
Bonjour Olihoes,
Voici une proposition.
J'ai ajouté en colonne AA un comptage des lignes du tableau que j'utilise dans le VBA.
Le VBA est documenté et est facile à comprendre.
Tu cliques sur le bouton pour lancer le VBA
Le nettoyage a été fait donc pour tester il faut réintroduire des données.
Bonne continuation
Chris
 

Pièces jointes

  • Tableau pleins chauffeurs.xlsm
    103.5 KB · Affichages: 1

Olihoes

XLDnaute Nouveau
Bonjour Olihoes,
Voici une proposition.
J'ai ajouté en colonne AA un comptage des lignes du tableau que j'utilise dans le VBA.
Le VBA est documenté et est facile à comprendre.
Tu cliques sur le bouton pour lancer le VBA
Le nettoyage a été fait donc pour tester il faut réintroduire des données.
Bonne continuation
Chris
Merci également pour ta réponse qui semble fonctionner elle aussi 👍
 

Discussions similaires

Réponses
1
Affichages
508

Statistiques des forums

Discussions
315 116
Messages
2 116 413
Membres
112 743
dernier inscrit
adilfakhir