VBA Excel
MartinSchmit
-
MartinSchmit -
MartinSchmit -
Bonjour,
j'essaie de faire une macro, mais ca plante. En faite j'ai une liste de nom dans la premiere colonne mais separées par plusieurs lignes vides, j'aimerai que dans ces lignes vide le nom de dessus s'y copie mais j'y arrive pas. J'ai besoin d'aide!
S'il vous plait
Voila le debut de mon code, j'ai essayé de le faire deja pour une personne, il faudra que je mette au point une boucle plus tard.
If Range("A8").Value = "1. Martin Schmit" Then
Range("A8").Select
ligne = ActiveCell.Row
While Range("A" & ligne).Value = ""
DoEvents
ligne = (ligne + 1)
Wend
Selection.AutoFill Destination:=Range("A8:A & ligne"), Type:=xlFillDefault
Range("A8:A" & ligne).Select
Else
Range("B8").Select
End If
j'essaie de faire une macro, mais ca plante. En faite j'ai une liste de nom dans la premiere colonne mais separées par plusieurs lignes vides, j'aimerai que dans ces lignes vide le nom de dessus s'y copie mais j'y arrive pas. J'ai besoin d'aide!
S'il vous plait
Voila le debut de mon code, j'ai essayé de le faire deja pour une personne, il faudra que je mette au point une boucle plus tard.
If Range("A8").Value = "1. Martin Schmit" Then
Range("A8").Select
ligne = ActiveCell.Row
While Range("A" & ligne).Value = ""
DoEvents
ligne = (ligne + 1)
Wend
Selection.AutoFill Destination:=Range("A8:A & ligne"), Type:=xlFillDefault
Range("A8:A" & ligne).Select
Else
Range("B8").Select
End If
Configuration: Windows XP Internet Explorer 7.0
4 réponses
-
Bonsoir,
Je suppose que A8 devrait évoluer vers autre chose passé ce problème ? sinon lig=9 et col=1... ?
essaies:
Dim valeur as string
dim lig as long
dim col as byte
application.screenupdating=True
valeur = "zaza"
If Range("A8") = valeur Then
lig = Range("A8").Row + 1
col = Range("A8").Column
While Cells(lig, col) = ""
Cells(lig, col) = valeur
lig = lig + 1
Wend
End If
Bonne continuation
Michel -
bonjour
.
Si j'ai compris ce que tu veux faire, ceci devrait fonctionner pour tout ton fichierPublic Sub remplir_vides() Dim ligne As Double For ligne = 2 To ActiveSheet.UsedRange.Rows.Count If Range("A" & ligne).Value = "" Then Range("A" & ligne).Value = Range("A" & ligne - 1).Value End If Next ligne End Sub -
J'avais posté une autre réponse juste après mais je pense que celle ci convient très bien. Alors je l'enlève!
-