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

Macro a déboguer!!!

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
 
@

@+Thierry

Guest
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
 
A

arnaud

Guest
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.
 
A

arnaud

Guest
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 ^^
 
P

Pascal76

Guest
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
 
P

Pascal76

Guest
Oups

Excusez j'avais confondu les 2 Arnaud

Il serait sympa que arnaud de afeas.net prenne peut-être un autre pseudo car c'est vrai qu'on à l'habitude de arnaud de eic.fr

Bonne journée

Pascal
 
A

arnaud16

Guest
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!!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…