Menu

Recopie automatique [Fermé]

Messages postés
18
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
4 décembre 2012
- - Dernière réponse : didibonf
Messages postés
418
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
21 mai 2019
- 5 déc. 2012 à 09:27
Bonjour,

j'essaie en vain de créer une macro que me permette de recopier des valeurs, dans une feuille excel, jusqu'à ce que la valeur suivante soit trouvée, voir ci-dessous.
A noter que les différentes valeurs se trouvent également dans une liste à part, dans le même format, .

Merci d'avance si vous pouvez m'aider.
Bien à vous

Bug


ATH CENTRE - 104000



ATH LES PRIMEVERES - 102200





CHIEVRES - 131700



ENGHIEN - 139400






FRASNES-LEZ-ANVAING - 146500



LESSINES - 167200
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
418
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
21 mai 2019
45
1
Merci
Tu peux essayer quelque chose comme ça:

Sub recopie()

i = 1 'première ligne à copier (ici la ligne 1)
Do Until i = 60 'dernière ligne non vide à ne pas recopier
cop = Cells(i, 1) 'selon la colonne concernée (ici la colonne 1)
suite = Cells(i + 1, 1)
Do Until suite <> ""
suite = Cells(i + 1, 1)
If suite = "" Then
Cells(i + 1, 1) = cop
End If
i = i + 1
Loop
Loop

End Sub


Attention à bien mettre une valeur dans ta dernière ligne à ne pas recopier (ici ligne 60) pour que la boucle s'arrête

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 54723 internautes nous ont dit merci ce mois-ci

bug dany
Messages postés
18
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
4 décembre 2012
-
Bonjour didibonf,

je rencontre un problème pour insérer les différentes données
Ci-dessous la 1ère feuille contenant les cellules, je désire que ATH CENTRE - 104000 se recopie automatiquement jusque ATH LES PRIMEVERES - 102200 et ainsi de suite.

Les différents noms sont également repris sur une 2ème feuille dans une liste en colonne (voir plus bas)

1ere feuille

ATH CENTRE - 104000



ATH LES PRIMEVERES - 102200





CHIEVRES - 131700


ENGHIEN - 139400

2ème feuille

ATH CENTRE - 104000
ATH LES PRIMEVERES - 102200
CHIEVRES - 131700
ENGHIEN - 139400
didibonf
Messages postés
418
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
21 mai 2019
45 -
bug dany,
As-tu essayé la macro que je t'ai proposé? Si elle ne fonctionne pas, envoie ton fichier via cjoint.com
bug dany
Messages postés
18
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
4 décembre 2012
-
Bonjour didibonf,

voici le fichier joint

http://cjoint.com/?3Len3yRdyUp

Merci
didibonf
Messages postés
418
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
21 mai 2019
45 -
Veux-tu écraser les valeur en noir ? Sinon il ne faut pas les mettre dans la même colonne que les valeur à recopier...
bug dany
Messages postés
18
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
4 décembre 2012
-
Oui, il faut les écraser, seuls doivent rester les noms de ville et les codes.
Merci d'avance
Bonne soirée
Bug
Messages postés
418
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
21 mai 2019
45
0
Merci
bug dany,
cette macro devrait fonctionne :

Sub recopie()

dernligne = Range("A65000").End(xlUp).Row
i = 13 'première ligne à copier (ici la ligne 1)
Do Until i = dernligne
cop = Cells(i, 1) 'selon la colonne concernée (ici la colonne 1)
suite = Cells(i + 1, 1)
On Error Resume Next
Do Until suite = WorksheetFunction.VLookup(suite, Sheets("Liste des entités").Range("A:A"), 1, False)
suite = Cells(i + 1, 1)
If suite <> WorksheetFunction.VLookup(suite, Sheets("Liste des entités").Range("A:A"), 1, False) Then
Cells(i + 1, 1) = cop
End If
Loop
i = i + 1
Loop
End Sub


N'hésite pas à poser des questions si tu ne comprends pas le code