Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1082 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2143837
initial
Posté le 27-05-2012 à 14:34:29  profilanswer
 

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

mood
Publicité
Posté le 27-05-2012 à 14:34:29  profilanswer
 

n°2144164
JBARBE
Posté le 31-05-2012 à 13:57:13  profilanswer
 

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

n°2144183
initial
Posté le 31-05-2012 à 16:53:49  profilanswer
 

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)

n°2144195
JBARBE
Posté le 31-05-2012 à 17:43:30  profilanswer
 

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
n°2144203
tarteflamb​ee
Posté le 31-05-2012 à 19:57:41  profilanswer
 

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
n°2144205
initial
Posté le 31-05-2012 à 20:40:03  profilanswer
 

Merci tarteflambee! C'est encore plus concis !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
Optimiser recherche dans une grosse BDD ExcelFichier Excel "Eurofoot 2012" gratuit à télécharger
Remplir une cellule td avec une couleur et un paddingMacro Excel -> ajouter un caractère dans une cellule
Créer une fonction de recherche sur excellancer une application en VBA depuis Excel
Fusionner plusieurs fichiers CVS un seul fichier excel 
Plus de sujets relatifs à : Macro Excel : remplir les vides avec la valeur de la cellule suivante


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR