Ecrasage de donnée liste box par erreur
Bonjour tous le monde,
Je viens vers vous avec une question peu commune (il me semble
Mettant récemment mis au VBA, je me suis dit pas bête la bête, tu pourrais te simplifier la vie avec un bout de code
Or ces liste déroulantes se font écraser (voir même remplacer par d'autre liste) lorsque j'exporte mes données.
Malheureusement, je ne sait pas pourquoi cela ce produit.
Mon code se présente sous la forme suivante:
Application.ScreenUpdating = False 'Permet de faire tourner la macro plus rapidement (je crois)
Chemin = "C:\Desktop\" 'Definition du chemin d'acces
Fichier = "Test-Dosier-Reception.xlsm"
Set Ws = Sheets("feuille source") 'Pour eviter de recopier tous le temps Sheet("feuille source")
With Workbooks.Open(Chemin & Fichier) 'Permet d'acceder a mon fichier de reception
DerniereLigne = Range("B" & Rows.Count).End(xlUp).Row 'Identifie la dernière ligne du fichier a remplir
With .Sheets("Feuil1") 'Correspond à la feuille où les données sont copier
Ws.Range("E9").Copy .Range("B" & DerniereLigne).Offset(1, 0)
.Range("B" & DerniereLigne).Offset(1, 0).Interior.ColorIndex = 0
End With
.Close savechanges:=True
End WithAuriez vous une explication de pourquoi un code aussi rudimentaire entraine ce genre de bug ?
Merci par avance
Cordialement,
Guillaume
Bonsoir,
Tu colles ! Si tu colles un contenu avec liste déroulante, tu colles aussi la liste. Si tu colles sur la liste, elle n'y est plus...
Bonjour MFerrand,
Donc si je comprend bien au lieux de .copy, il faut que je mette .past ?
Y aurait il pas un moyen pour juste mettre la donnée sans pour autant supprimer la mise en forme du dossier de réception (sans supprimer les liste déroulante) ?
Cordialement
Guillaume
D'ailleur ce qui me surprend, c'est que les listes sont remplacer par d'autre en fait.
Par exemple en colonne F du fichier source j'ai une liste déroulante de produit. Ces données sont exporté en colonne E. est a ce moment, la liste de choix de la colonne E est remplacer par celle des pays.
Il en va de même pour toutes les autres (après vérifications) d'ailleurs
Ok je suis très C..
Je viens de changer l'ordre dans mon code (cf ci-dessous) est sa marche parfaitement !
Dsl MFerrand de t'avoir fait perdre du temps mais merci pour ton commentaire qui ma mis sur la voie
.Range("B" & DerniereLigne).Offset(1, 0) = Ws.Range("E9") Des fois une simple modification du code fait toute la différence
Merci encore et bonne journée