Macro a déboguer!!!

  • Initiateur de la discussion Initiateur de la discussion arnaud
  • 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 !

A

arnaud

Guest
Bonjour le forum,

J'utilise une macro qui me permet de rechercher des valeurs dans des colonnes et de les dupliquer dans une autre colonne et à la même ligne, voici la formule :

Private Sub CommandButton1_Click()
For Each Cel In Intersect(UsedRange, Range("AT:BC"))
If Cel = "Access" Or Cel = "Sic" Or Cel= "Ter" Then Intersect(Cel.EntireRow, Range("P😛")) = Cel
Next Cel
End Sub

Mon problème est que cette macro ne fonctionne, je pense que cela est du aux contenus des cellules a dupliquer : il s'agit pour chaque cellule d'une formule du type Recherchev(....)

Merci sincèrement a celle ou celui qui trouvera Euréka!

Bonne journée a tous

Arnaud
 
Bonjour Arnaud, le Forum

Essaies plutôt comme ceci :

Option Explicit
Option Compare Text

Private Sub CommandButton1_Click()

Dim Cel As Range

For Each Cel In Intersect(Me.UsedRange, Range("A:T"))
If Cel.Value = "Access" Or Cel.Value = "Sic" Or Cel.Value = "Ter" Then Intersect(Cel.EntireRow, Range("P😛")) = Cel
Next Cel
End Sub

Testé sur une fonction VlookUp. Tu noteras que je prends soin de déclarer "Cel" et que j'emploie l'Option Compare Text pour éviter les surprises avec les MAJ / min... En ce qui concerne la plage "("AT:BC") j'ai corrigé... mais vu que "P😛" est comprise dedans, ce n'est pas très orthodox...

Bon Appétit
@+Thierry
 
Hello Thierry,

J'ai copié-collé ta formule et cela ne fonctionne pas : "Next sans For"???

Option Explicit
Option Compare Text

Private Sub CommandButton1_Click()

Dim Cel As Range

For Each Cel In Intersect(Me.UsedRange, Range("AT:BC"))
If Cel.Value = "Access" Or Cel.Value = "Sicp" Or Cel.Value = "Ter" Or Cel.Value = "Duo" Or Cel.Value = "eth.met" Or Cel.Value = "NCC" Then
Intersect(Cel.EntireRow, Range("P😛")) = Cel
Next Cel

End Sub

Qu'est ce qu'une fonction VlookUp?

Merci d'avance

Salutations.

Arnaud.
 
salut 🙂,

ça a peut être pas de rapport mais moi je mettrai un End if après la ligne

Intersect(Cel.EntireRow, Range("P😛")) = Cel

( si celle ligne est bien sur une autre ligne que celle du If ) je sen que je suis pas clair la ^^
 
Bonjour Arnaud, Thierry

Gagné

Thierry avait inscrit tout sur la même ligne donc pas besoin de End If mais en le recopiant comme tu as fait il faut un End If après Intersect(Cel.EntireRow, Range("P😛")) = Cel

Bonne journée

Pascal
 
Sur la ligne :

If Cel.Value = "Acces" Or Cel.Value = "Sic" Or Cel.Value = "Ter" Or Cel.Value = "Duo" Or Cel.Value = "ethyp.met" Or Cel.Value = "NCC" Then Intersect(Cel.EntireRow, Range("P😛")) = Cel

G un message d'erreur du genre "Erreur d'exécution '13' Incompatibilité de type"?????

Merci à vous

Arnaud16

PS : Thierry ta boite est saturée!!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
594
Retour