Macro Excel : remplir les vides avec la valeur de la cellule suivante

Macro Excel : remplir les vides avec la valeur de la cellule suivante - VB/VBA/VBS - Programmation

Marsh Posté le 27-05-2012 à 14:34:29    

Bonjour,
 
Je cherche à réaliser une macro sous Excel pour remplir automatiquement les cellules vides d'une colonne avec la valeur de la première cellule pleine qui suit.
Exemple :  
 
[Avant la macro]
*vide*
*vide*
93
*vide*
*vide*
*vide*
11
*vide*
12
 
[Après la macro]
93
93
93
11
11
11
11
12
12
 
Savez-vous comment faire ?  
 
Merci !
 
Initial

Reply

Marsh Posté le 27-05-2012 à 14:34:29   

Reply

Marsh Posté le 31-05-2012 à 13:57:13    

Bonjour,
 
http://cjoint.com/?BEFn4bIwOQB
 
Sub Remplissage()
Dim i As Integer
Dim j As Integer
Dim k As Integer
 
Sheets("Feuil1" ).Select
For k = 1 To 30000
 For i = 1 To 30000
  If Cells(i, 1) <> "" And Cells(i, 2) = "" Then
  Range("C1" ) = Cells(i, 1)
  Exit For
   ElseIf Range("D1" ) = Range("E1" ) Then
   Range("B:B" ).ClearContents
   Range("C1" ).ClearContents
    Range("D1" ).ClearContents
   Exit Sub
  Else
  Cells(i + 1, 1).Select
  End If
 Next i
 
 For j = 1 To 30000
  If Cells(j, 1) = "" And Cells(j, 2) = "" Then
   Cells(j, 1) = Range("C1" )
   Cells(j, 2) = "X"
    Range("D1" ) = Range("D1" ) + Cells(j, 1)
   Cells(j + 1, 1).Select
  ElseIf Cells(j, 1) <> "" And Cells(j, 2) = "" Then
   Range("D1" ) = Range("D1" ) + Cells(j, 1)
  Cells(j, 2) = "X"
  Exit For
  End If
 Next j
 
 Cells(k + 1, 1).Select
Next k
End Sub

Reply

Marsh Posté le 31-05-2012 à 16:53:49    

Super ! J'ai téléchargé la feuille jointe. ça marche nickel ! Merci beaucoup !  
 
Juste une question sur le code : pourquoi laissez-vous un espace dans "Range("D1" )" juste avant de fermer la parenthèse ?
(Idem à d'autres endroits)

Reply

Marsh Posté le 31-05-2012 à 17:43:30    

initial a écrit :

Super ! J'ai téléchargé la feuille jointe. ça marche nickel ! Merci beaucoup !  
 
Juste une question sur le code : pourquoi laissez-vous un espace dans "Range("D1" )" juste avant de fermer la parenthèse ?
(Idem à d'autres endroits)


 
Une erreur de saisie, mais la macro fonctionne quand même !
 
PS: IMPORTANT >>>> Ne pas supprimer la cellule " E1 " contenant une formule permettant d'arrêter la macro !
 
A+


Message édité par JBARBE le 31-05-2012 à 17:48:24
Reply

Marsh Posté le 31-05-2012 à 19:57:41    

sinon un peu + simple

 
Citation :


Sub Remplissage2()

 

Dim col As Integer
Dim i As Long
Dim val As Double

 

col = 1
For i = Cells(65536, col).End(xlUp).Row To 1 Step -1
    If IsEmpty(Cells(i, col)) = True Then Cells(i, col).value = val Else val = Cells(i, col).value
Next i

 

End Sub


Message édité par tarteflambee le 31-05-2012 à 19:58:51
Reply

Marsh Posté le 31-05-2012 à 20:40:03    

Merci tarteflambee! C'est encore plus concis !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed