Copier valeur Cellule A si cellule B est vide

Hello à tous,

Je sollicite votre aide que je n'arrive pas à solutionner. Même ChatGPT n'a pas réussi à satisfaire ma demande ^^.

Je voudrais simplement que si la cellule A1 a une valeur quelconque ET que la cellule suivante vers le bas, soit A2, est vide, alors la valeur de A1 est copié en A2.
C'est la version simple.

Je voudrais que ce système se calcule sur la plage A1:A120.

Chaque semaine, je suis amené à modifier les données de ce tableau, donc le calcul se doit de s'adapter sur la condition ultime que si une cellule à une valeur remplie alors cette même valeur sera copiée sur la cellule du bas SI et uniquement SI elle est vide. Si de base, celle du bas n'est pas vide, rien ne doit se passer sur ces cellules.

Je pense qu'une Macro doit faire ça mais je ne sais pas comment le faire. Si vous avez de quoi le faire, je vous en remercie.

NB : Le fichier XLSX s'il y aura macro devra devenir XLSM.

Bonsoir et merci :)

La macro fonctionne mais comment je peux l'installer sur mon propre tableur ? Le bouton que vous avez crée peut-il être copié collé ailleurs, déplacé ?

Est-il possible de créer la macro pour qu'elle agisse quand on modifie la colonne directement sans bouton ?

Merci d'avance.

Bonjour,

Est-il possible de créer la macro pour qu'elle agisse quand on modifie la colonne directement sans bouton ? OUI

Copiez ce code dans le module de la feuille concernée:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Not Intersect(Target, Range("A1:A120")) Is Nothing Then
    Application.ScreenUpdating = False
        For i = 1 To 119
            If Cells(i + 1, "A") = "" Then Cells(i + 1, "A") = Cells(i, "A")
        Next i
    End If
Sortie:
    Application.EnableEvents = True
End Sub

exemple, si votre feuille est 'Feuil1"

pharaon88

Cdlt

Hello,

Top, ca fonctionne !

La dernière modif serait que pour la dernière ligne, elle fasse sa copie si nécessaire mais qu'elle s'arrête là.
Sur ta formule, tu vas jusqu'à la ligne 119 mais si jamais les numéros s'arrête en ligne 90, la 91 sera la copie de la 90 mais de la 92 à la 119 il ne doit rien avoir.
A l'heure actuelle, de la 92 à 119 par exemple, il y a une copie de la dernière valeur qui se repete !

Possible de corriger ça stp ? :)

Bonjour,

Ok, voilà la modif:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    If Not Intersect(Target, Range("A1:A" & DerLig)) Is Nothing Then
    Application.ScreenUpdating = False
        For i = 1 To DerLig
            If Cells(i + 1, "A") = "" Then Cells(i + 1, "A") = Cells(i, "A")
        Next i
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Bonjour,

C'est absolument parfait ! Merci à toi :)

Rechercher des sujets similaires à "copier valeur vide"