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

Résolu/Fermé
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020 - 11 févr. 2020 à 17:06
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020 - 19 févr. 2020 à 19:08
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.

9 réponses

M-12 Messages postés 1333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 299
12 févr. 2020 à 08:33
Bonjour,

Vérifiez les noms de vos onglets (espaces, majuscules, minuscules, accents, etc)
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
12 févr. 2020 à 10:24
Bonjour,
Je l'ai déjà fait... est ce que je peux vous transmettre mon fichier ?
0
yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
12 févr. 2020 à 10:50
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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
12 févr. 2020 à 17:06
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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
12 févr. 2020 à 17:38
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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
12 févr. 2020 à 18:19
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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
12 févr. 2020 à 22:10
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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
12 févr. 2020 à 23:20
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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 févr. 2020 à 08:02
"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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
13 févr. 2020 à 10:02
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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 févr. 2020 à 10:24
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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
13 févr. 2020 à 10:58
Ç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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 févr. 2020 à 17:42
peut-être ne sont-ce pas les bonnes plages?
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
14 févr. 2020 à 23:09
Ç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 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
15 févr. 2020 à 09:42
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 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
19 févr. 2020 à 19:08
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