Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA - Ne pas copier ma ligne si le n° de rang existe

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Roger36

XLDnaute Nouveau
Bonjour à tous,

Je débute et je souhaiterais modifié une macro déjà existante.
J'ai une macro qui copie et colle des informations dans un autre fichier excel sous condition, mais lorsqu'elle colle mes données dans mon fichier excel, appelé suivi, celle ci remplace les informations déjà collé.
J'ai crée une nouvelle colonne "Rang" en colonne K où chaque ligne porte son numéro.
je souhaiterais rajouter dans ma macro que si le n° indiqué dans "Rang" existe alors ne pas copier ma ligne, ne rien faire.

Est-ce possible ?

Merci beaucoup pour votre aide
 
Comme on n'a pas le fichier de destination, je me suis contenté d'ajouter un filtre pour avoir les lignes à copier
 
je me suis permis également de modifier ton code pour éviter de mettre du quadrillage sur toute la feuille contrats
autant ne formater que la zone de données

j'ai également transformé ton tableau de données en table structurée

une solution PQ serait surement très efficace également
 

Pièces jointes

dans la PJ: deux solutions
1 par macro
1 par Power Query

pour la macro, j'ai juste mis en commentaire les lignes chemin=... et workbook.open
et j'ai mis la feuille Contrats dans le fichier (et mis en commentaire qui ferme le workbook)

par Power Query, le résultat est mis dans la feuille "par PQ")
 

Pièces jointes

Je ne connais pas du tout Power Query, je prèfere rester sur la MACRO.
J'ai essayé ta macro mais ça ne fonctionne pas.
J'ai un débogage pour ce code :
wkA.Sheets("COMMANDES CAMON").Range("A1:S" & derlig).AutoFilter Field:=19, Criteria1:="<>", Operator:=xlAnd
 
Bizarre, as tu changé quelque chose dans la structure de ton fichier ?? une colonne en moins par exemple..?

regarde la version ci jointe, les filtres exploitent le fait que les données sont en table structurée
j'ai mis/corrigé quelques commentaires dans ton code

pour Power Query: c'est totalement intégré dans ta version; rien à installer.
et il suffit de faire un clic droit actualiser sur le tableau final==> mais, cétait juste pour te montrer une autre piste.. je ne suis pas vraiment au point sur PQ que je découvre tout juste.
 

Pièces jointes

ça fonctionne sans msg d'erreur mais le pb c'est :
- je remplie une date ou autre dans mon fichier de destination
- j'enregistre le fichier de destination
- je relance la macro dans mon fichier de suivi
- je retourne dans mon fichier de destination et là ça a recopié par dessus mes lignes déjà existante sans me garder ce que j'avais remplie et sauvegardé.

le but du fichier de destination et de servir a une personne a remplir les dates et indiqué si le matériel est reçu
 
je pense que tu as confondu Source et destination dans ton précédent mail.
c'est normal que les lignes "précédentes" soient écrasées;; puisque dans le code.. tu Effaces la feuille "Contrats".. (avant la partie "Filtres")

en PJ
1) le Tableau SOURCE s'appelle "Tab_BD", il est dans la feuille "Commandes CAMON")

2) la feuille DESTINATION "Contrats" est dans le meme classeur (==> il faut donc que tu décommentes les deux lignes pour que la macro prenne celle de ton fichier sur ton disque dur

3) j'ai aussi ajouté une feuille Liste (ca m'agacait d'avoir le message d'erreur car feuille introuvable)
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
580
Réponses
8
Affichages
2 K
Réponses
2
Affichages
754
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…