Recopie automatique

Fermé
bug dany Messages postés 18 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 4 décembre 2012 - 26 nov. 2012 à 11:51
didibonf Messages postés 419 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

2 réponses

didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
Modifié par didibonf le 28/11/2012 à 13:57
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
1
bug dany Messages postés 18 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 4 décembre 2012
Modifié par bug dany le 3/12/2012 à 09:11
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
0
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
3 déc. 2012 à 12:14
bug dany,
As-tu essayé la macro que je t'ai proposé? Si elle ne fonctionne pas, envoie ton fichier via cjoint.com
0
bug dany Messages postés 18 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 4 décembre 2012
4 déc. 2012 à 13:57
Bonjour didibonf,

voici le fichier joint

https://www.cjoint.com/?3Len3yRdyUp

Merci
0
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
4 déc. 2012 à 14:35
Veux-tu écraser les valeur en noir ? Sinon il ne faut pas les mettre dans la même colonne que les valeur à recopier...
0
bug dany Messages postés 18 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 4 décembre 2012
4 déc. 2012 à 20:27
Oui, il faut les écraser, seuls doivent rester les noms de ville et les codes.
Merci d'avance
Bonne soirée
Bug
0
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
5 déc. 2012 à 09:27
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
0