copier coller s'il code n'existe pas

  • Initiateur de la discussion Initiateur de la discussion David
  • Date de début Date de début

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 !

David

XLDnaute Occasionnel
Bonjour à tous

J'ai une macro qui fait fonctionner 3 classeurs et qui va chercher des valeurs en fonction des matricules. J'ai juste un petit problème (petit, je suis pas sur 🙂 ), j'ai une macro qui compare les matricules des différents classeurs et quand le matricule est trouvé, elle copie la valeur de certaines cellules vers l'autres classeur (même matricule), mais lorsque le matricule n'existe pas je voudrais que cela copie le matricule du premier classeur vers le second.

Je ne peux mettre mes trois classeurs, ils sont trop gros, je vous joins donc un fichier ou le but est de copier la cellule A6 de la feuille 1 un sur la cellule A11 de la feuille 2.

Attention faire un copier coller je sais, ce que je veux c'est qu'il fasse le copier coller parce que C100 n'existe pas dans la colonne A sur la feuille 2, je ferai les adaptations pour classeur à la place des feuilles 😉.

Merci d'avance.
 

Pièces jointes

Dernière édition:
Re : copier coller s'il code n'existe pas

Bonjour David,

Code:
Sub Macro1()
Dim ref As Range
Set ref = Sheets("Feuil1").Range("A6")
With Sheets("Feuil2")
If Application.CountIf(.Columns(1), ref) Then Exit Sub
.Range("A11") = ref
.Range("C11") = ref.Offset(, 1)
End With
End Sub

A+
 
Re : copier coller s'il code n'existe pas

Bonjour job75 et merci pour ta macro.

c'est bien ça sauf que j'ai cru pouvoir l'adapter pour mes classeurs, mais jai un message d'erreur 🙁

Le code transformé :

Code:
Sub crea()
Dim ref As Range
Set ref = ActiveCell
With Windows(equipe & " " & mois_en_cours & " " & annee & ".xls").Activate
Sheets("mass_sal").Select
If Application.CountIf(.Columns(1), ref) Then Exit Sub
.Range("A24") = ref
.Range("B24") = ref.Offset(, 1)
End With
End Sub

La cellule active est sur un autre classeur et ça prend bien la valeur, je veux qu'il la compare avec la première colonne du classeur "equipe & " " & mois_en_cours & " " & annee & ".xls" onglet "mass_sal" et que ça copie sur A24 de ce même onglet s'il existe pas.

Le code modifié donne le message d'erreur : Erreur d'exécution '424' objet requis.

Merci
 
Dernière édition:
Re : copier coller s'il code n'existe pas

Re,

Il y a au moins ces 2 lignes qui ne vont pas du tout :

Code:
With Windows(equipe & " " & mois_en_cours & " " & annee & ".xls").Activate
Sheets("mass_sal").Select

- il faut bien sûr définir les variables equipe, mois_en_cours, annee

- le With doit porter sur l'autre ligne, et ne pas utiliser Select :

Code:
Windows(equipe & " " & mois_en_cours & " " & annee & ".xls").Activate
With Sheets("mass_sal")

Quant à Set ref = ActiveCell j'ai quelques doutes... 😎

A+
 
Re : copier coller s'il code n'existe pas

Bonsoir

Merci pour ta réponse, j'ai fait autrement avec la méthode .find et ça marche. C'est vrai que le With n'était pas du tout au bon endroit, j'apprend au fur et à mesure, mais il y a encore plein de chose que je fais et je fais pas attention, heureusement que j'ai du temps pour dévelloper et apprendre et que vous êtes la !!^^

Pour activecell ça marchait bien la valeur était bien celle que je voulais, c'est lié à un autre macro qui s'arrétait sur la cellule désiré avant d'arrivé à la macro crea.

Merci pour tout.
 
Dernière édition:
- 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
3
Affichages
115
Réponses
10
Affichages
373
Retour