Copie la valeur d'une cellule jusqu'à la valeur différente

Fermé
dadi - 27 août 2015 à 10:25
 dadi - 27 août 2015 à 14:52
Bonjour,

Je reviens vers vous car je suis bloqué sur une macro



Je souhaiterais copier la valeur d'une cellule dans les cellules suivantes de la même colonne jusqu'à ce que sa valeur change, et refaire le même travail pour le reste des valeur

Exemple :

TRAVAIL RESULTAT SOUHAITE
1 1
1
1
1 1
2 2
2
2
2
2
2 2
3 3
3
3 3


Entre 1 et 1 il ya des cellules vides, je veux les remplir par 1
ensuite les cellules vides entre le nombre 2 , les remplir par 2
et ainsi de suite


Merci de votre aide




2 réponses

Zawarudio Messages postés 14 Date d'inscription mardi 25 août 2015 Statut Membre Dernière intervention 2 octobre 2015 1
27 août 2015 à 10:37
Je n'ai pas vraiment compris votre exemple (notamment avec les chiffres doublés du style "1 1" qui deviennent "1")

Mais voici une base de travail, si c'est sur ça que vous avez un problème

Sub test()
Dim i As Integer
Dim s As String

'boucler jusqu'à la cellule ou l'on veut s'arrêter
'Note: Je pars du principe que la première cellule est remplie
'Sinon, il faudra décommenter la prochaine ligne
's = "A"
For i = 1 To 20
If (ActiveSheet.Cells(i, 1).Value <> "") Then
s = ActiveSheet.Cells(i, 1).Value
Else
ActiveSheet.Cells(i, 1).Value = s
End If
Next i
End Sub

1
Merci de votre réponse.
Dans la colonne A, j'ai des références clients :
A1 = Références clients
A2 = 1000
A3=vide
A4=vide
A5=1000
A6=2000
A7=vide
A8=2000

Je veux remplir A3 A4 avec 1000 , et A7 avec 2000
Donc le morceau de code que je cherche va vérifier A2 avec la cellule d'en bas si c'est vide alors il me met le valeur de A2, et s'il y a un changement de valeur , il prend cette nouvelle valeur et il applique le même travail pour le reste des cellules.
0
Zawarudio Messages postés 14 Date d'inscription mardi 25 août 2015 Statut Membre Dernière intervention 2 octobre 2015 1 > dadi
27 août 2015 à 11:40

Sub test()
Dim i As Integer 'variable pour la boucle
Dim s As String 'variable pour stocker la dernière valeur connue

'Un exemple de boucle, cela dépends entièrement de votre besoin de travail
'Par exemple, si vous voulez mettre un "FIN" dans une cellule et que vous voulez vous arreter la, ça serait
'i = 1
'while Activesheet.Cells(i,1).value <> "FIN"
' Code...
' i = i + 1
'Wend
For i = 1 To 20
'Si la cellule n'est pas vide, on stocke la valeur de cette cellule
If (ActiveSheet.Cells(i, 1).Value <> "") Then
s = ActiveSheet.Cells(i, 1).Value

'Si la cellule est vide, on mets la valeur stockée dans la cellule
Else
ActiveSheet.Cells(i, 1).Value = s
End If
Next i
End Sub



Exécution :
A1 = Références clients -> s = "Références clients"
A2 = 1000 -> s = "1000"
A3=vide -> A3 = s (1000)
A4=vide -> A4 = s
A5=1000 -> s = "1000"
A6=2000 -> s = "2000"
A7=vide -> A7 = s
A8=2000 -> s = "2000"

Ca devrait correspondre à vos attentes après avoir adapté le code à votre Classeur.
0
Merci beaucoup pour votre aide
Ça marche à merveille
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
27 août 2015 à 11:46
Bonjour

Un exemple
http://www.cjoint.com/c/EHBjUoHornn

Cdlmnt
1