Message : la méthode Range de l'objet global a échoué...

Résolu
#jquem# Messages postés 76 Statut Membre -  
#jquem# Messages postés 76 Statut Membre -
Bonjour,

j'ai déplacé un tableau avec des macros dans un autre fichier excel. j'ai repris tous les formats, toutes les macros, en bref, TOUT. Ca fonctionnait parfaitement dans le fichier initial, maintenant, j'ai ce message qui apparait… je n'y comprends rien. Quelqu'un pourrait-il m'aider.
Voila la macro :

Sub Filtredatas()
Range("B11:B13").Select
Sheets("Tableaudebord").Range("SOURCES").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("'Tableaudebord'!Criteria"), CopyToRange:=Range("'Tableaudebord'!Extract"), Unique:=False
Range("C6").Select
End Sub

Merci pour votre aide.
A voir également:

9 réponses

M-12 Messages postés 1349 Statut Membre 285
 
Bonjour,

Vérifiez les noms de vos onglets (espaces, majuscules, minuscules, accents, etc)
0
#jquem# Messages postés 76 Statut Membre
 
Bonjour,
Je l'ai déjà fait... est ce que je peux vous transmettre mon fichier ?
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
bonjour, as tu également recréé dans le nouveau fichier les plages nommées qui étaient présentes dans le fichier initial?
pour transmettre un fichier, il faut le publier sur internet (google drive, cjoint.com, ...), puis transmettre ici le lien vers le fichier.
0
#jquem# Messages postés 76 Statut Membre
 
Re bonjour,

J'ai normalement tout recréé... tout vérifié; rien n'y fait...
Je te passe mon fichier via mon-partage.fr
Ce document s'ouvre automatiquement sur un formulaire. Ce qui me pose problème est le filtre de l'onglet "MARCHES".
Pour fermer ce formulaire, ne pas aller sur "Quitter", cela enregistre et ferme le fichier... il faut cliquer sur le petit logo en bas à gauche "V". D'ailleurs existe-t-il une formule pour mettre un code de sécurité pour bloquer l'accès aux infos quand on clique sur ce "V" ?

https://mon-partage.fr/f/xAOEPr6h/

J'ai mis une validation de partage jusqu'au 14 pour sécuriser un minimum ce fichier.

Peux tu le regarder stp ? je suis certain que tu as un œil plus expert que le mien.
Merci par avance
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
dans l'onglet Tableaudebord, je ne vois pas de plage nommée Criteria ni Extract.
il me semble donc inévitable que l'instruction suivante se plante:
Sheets("Tableaudebord").Range("SOURCES").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("'Tableaudebord'!Criteria"), CopyToRange:=Range("'Tableaudebord'!Extract"), Unique:=False
0
#jquem# Messages postés 76 Statut Membre
 
Comment dois-je faire pour les créer ?
Je t'envoie le tableau "Source", celui que j'ai voulu transférer.
Le filtre sur celui-ci fonctionne normalement. J'avoue être un peu perdu...

https://mon-partage.fr/f/XdHPPoyk/

Merci
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
Je ne sais pas qui a fait quoi, mais le fichier autre est très différent du fichier initial.
Tu n'as pas expliqué pourquoi tu faisais tous ces changements.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
#jquem# Messages postés 76 Statut Membre
 
C'est moi qui ai fait les deux.
J'ai juste voulu regrouper dans un seul fichier avec un formulaire à onglets trois fichiers que j'avais fait auparavant.
J'ai retiré au fur et à mesure des formules dans le fichier initial, qui alourdissaient ce dernier. Tant que les macros marchaient, je continuais. D'où peut-être les différences entre les deux fichiers...
Pour être honnête, je suis une "buse" en bureautique, je me forme au fur et à mesure que je fais les choses. J'ai peur que mes connaissances touchent leurs limites... c'est pour cela que je finis par demander de l'aide.
Crois tu qu'il est possible quand même de trouver une solution ?
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
"Tant que les macros marchaient, je continuais."
Prenais-tu une copie des fichiers avant de continuer? Ne suffit-il pas alors de retourner à la dernière copie?
Sinon, ne peux-tu pas défaire les changements que tu as faits après la dernière verification?

Sinon, une solution serait de recommencer le regroupement de façon plus prudente et plus organisée.

Je suis étonné par ta question "comment créer une plage nommée": n'en as-tu pas déjà créé beaucoup dans ces fichiers?
Sais-tu où doivent se trouver les deux plages nommés manquantes?
0
#jquem# Messages postés 76 Statut Membre
 
Bonjour,
J'ai toujours le fichier initial, bien sur.
Pour les plages de données qui posent problème, elles sont pour moi dans l'onglet "Tableaudebord" et sont nommées "Critères" et "SOURCES".
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
le programme cherche dans l'onglet Tableaudebord des plages nommées Criteria et Extract.
il te suffit alors d'adapter les noms dans le programme.
0
#jquem# Messages postés 76 Statut Membre
 
Ça avance ! Déjà, ça ne plante plus... plus de débogage !
J'ai changé les plages dans la formule, j'ai modifié en utilisant "SOURCES", "Critères" et "Extraites".Ça donne cela :

Sub Filtredatas()
Range("B11:B13").Select
Sheets("Tableaudebord").Range("SOURCES").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("'Tableaudebord'!Critères"), CopyToRange:=Range("'Tableaudebord'!Extraites"), Unique:=False
Range("C6").Select
End Sub

Par contre, ça ne filtre pas et ne donne aucun résultat. La macro qui appelle Filtredatas fonctionne bien, on peut le,constater sur le tableau Excel lors du clic sur le formulaire.
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
peut-être ne sont-ce pas les bonnes plages?
0
#jquem# Messages postés 76 Statut Membre
 
Ça y est, j'ai trouvé. Finalement, il restait un module dans lequel il y avait encore des bribes de macro "Filtredatas" (ce qui en faisait un doublon).

Merci pour votre aide.

Dernière question : doit-on mettre toutes les infos sur la même feuille ? Dans mon formulaire, deux pages sont liées à "Tableau de bord" et elles fonctionnent que qd la feuille est active. Pour l'autre page du formulaire, elle est liée à "Tableaudebord" , c'est la même chose... d'où cette question.

Encore merci.
Cordialement
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
la réponse à ta question est, en général, "non".
je vois deux éléments suspects dans le bout de code que tu as partagé. ce ne sont pas de bonnes pratiques, et c'est souvent source d'erreur
- tu écris "range" sans préciser de quelle feuille il s'agit
- tu fais Select
Je recommande aussi d'ajouter "option explicit" en début de chaque module.
0
#jquem# Messages postés 76 Statut Membre
 
Merci beaucoup pour ces conseils que j'ai bien notés. Tout "roule" désormais.
Sauf une histoire de remplissage d'une seule cellule à partir de 6 listes différentes et apparentes à partir d'une liste permettant de choisir une de ces 6.
J'ai posé la question sur CCM, mais je n'ai aucune réponse... c'est pourquoi, je te la pose.

Pourrais-tu regarder s'il te plait, le descriptif ci dessous ?

Je souhaite remplir une cellule (AI) via une combobox.
J'ai 6 combo différentes. je les rend apparentes unitairement après avoir fait le choix d'une de ces dernières dans une autre combo.
Mon codage n'est pas bon et n'accepte que les valeurs d'une seule liste, en l'occurence la dernière dans le codage.

Private Sub BtnAjout_Click()
Dim g As Integer
g = Range("AH" & Rows.Count).End(xlUp).Row
Range("AH" & g + 1).Value = ComboBox6
Range("AI" & g + 1).Value = ComboBox7
Range("AI" & g + 1).Value = ComboBox14
Range("AI" & g + 1).Value = ComboBox17
Range("AI" & g + 1).Value = ComboBox16
Range("AI" & g + 1).Value = ComboBox15
Range("AI" & g + 1).Value = ComboBox18
Range("AJ" & g + 1).Value = ComboBox8
Range("AK" & g + 1).Value = ComboBox9
Range("AL" & g + 1).Value = TextBox2
Range("AM" & g + 1).Value = ComboBox12
Range("AN" & g + 1).Value = ComboBox10
Range("AO" & g + 1).Value = TextBox1


'Remet toutes les fenêtres des infos à O après saisie et click (FORMULE VALIDE)
ComboBox7 = ""
ComboBox8 = ""
ComboBox9 = ""
ComboBox10 = "-"
ComboBox14 = ""
ComboBox15 = ""
ComboBox16 = ""
ComboBox18 = ""
ComboBox18 = ""
TextBox1 = "-"
TextBox2 = "-"
MsgBox "Les informations saisies ont bien été enregistrées. Merci."
End Sub

Les combo concernées sont les 7-14-15-16-17-18
Je pense qu'elles sont "lues" l'une après l'autre et que la dernière efface l'avant dernière et ainsi de suite...
Quelqu'un pourrait-il corriger ce défaut afin que la cellule puisse récupérer par exemple la valeur de la combo16 si cette dernière a été choisie?

Merci beaucoup
0