Etirer cellule vers le haut

Bonjour,

j'ai besoin d'aide sur vba: chaque fois que j'ai une cellule non-vide, je souhaite l'étirer jusqu'à la prochaine non-vide (sans écraser cette dernière bien sûr).

Mon but est d'automatiser un fichier que j'extrais et retraite chaque jour.

exemple: j'ai "bonjour" en A2 et "au revoir" en A10, et "re-bonjour" en A20->je voudrais que la formule étire "au revoir" jusqu'à A3 et "re-bonjour" jusqu'à A11.

Voici le fichier en PJ.

Par avance, merci de votre aide

11macro-test1.xlsm (81.72 Ko)

Bonjour Jonathan, bonjour le forum,

Essaie comme ça :

Sub Macro1()
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 V As Variant 'déclare la variable V (Valeur)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set O = Sheets("Coûts,  Qtés &  Ecart entré (2") 'définit l'onglet O (à adapter)
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
V = O.Cells(DL, 1) 'définit la variable V (valeur de la dernière cellule éditée de la colonne A)
For I = DL - 1 To 2 Step -1 'boucle inversée de l'avant-dernière ligne éditée à la ligne 2
    'si la cellue est vide, envoie la valeur V, sinon, redéfinit la varialble V avec la valeur de la cellule
    If O.Cells(I, 1).Value = "" Then O.Cells(I, 1).Value = V Else V = O.Cells(I, 1).Value
Next I 'prochaine ligne de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub

Bonjour,

essaye ceci :

Sub Remplir()

Dim Cel As Range, Last As Integer

Last = [A65000].End(xlUp).Row

For Each Cel In Range("A2:A" & Last)

valor = Cel.Value

If Cel.Offset(1, 0) = "" Then

Cel.Offset(1, 0) = valor

End If

Next Cel

End Sub

Merci de ton aide ThauThème, c'est parfaitement parfait.

J'ai compris le principe et vais l'adapter à mes différents onglets.

Rechercher des sujets similaires à "etirer haut"