Erreur 1004, la methode range dans l'objet global a échoué

Menibelus

XLDnaute Nouveau
Bonjour,

J'avance sur mon projet mais la je suis bloqué, j'ai un formulaire de saisie pour mon personnel et pour l'adresse et plus précisément le code postal et la ville je fas appelle à un autre userform "Usf_Insee" mais que je le lance j'ai le message "Erreur 1004, la methode range dans l'objet _global a échoué"
Je ne vois pas ou est le problème

Pourriez-vous m'aider ?
 

Pièces jointes

  • 5852020102.xlsb
    193.3 KB · Affichages: 10

Dranreb

XLDnaute Barbatruc
Bonjour.
Le nom 'bddata' est défini avec une étendue réduite au niveau de la feuille, et non du classeur.
La méthode Range de l'objet Worksheet quant à elle ne plante pas :
ListeVille = Feuil2.Range("bddata").Value
Remarque: le nom existe aussi au niveau global mais sa clé y est alors préfixée du nom de l'onglet :
ListeVille = Range("BD!bddata").Value

Attention: Ça plante plus loin pour une autre raison …
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Menibelus,
Moi il se plante sur :
0.jpg

Je n'ai pas trouvé où était déclaré ni à quoi correspondait [bdd]
 

Dranreb

XLDnaute Barbatruc
Oui, ça fait beaucoup de lignes et de colonnes tout ça !
Ne pourriez vous pas mettre votre plage sous forme de tableau et ne prendre que la partie effectivement utilisée de tout ça (ce sera la propriété DataBodyRange du ListObject qui le représentera) ?
 

Menibelus

XLDnaute Nouveau
Oui, ça fait beaucoup de lignes et de colonnes tout ça !
Ne pourriez vous pas mettre votre plage sous forme de tableau et ne prendre que la partie effectivement utilisée de tout ça (ce sera la propriété DataBodyRange du ListObject qui le représentera) ?
Du coup j'ai repris cela à zéro et prenant un exemple de Boisgontier Jacques que j'ai adapté mais là encore je ne comprend pas excel me demande de définir les variable bd, a , b dans le code suivant :
VB:
Private Sub UserForm_Initialize()
  Set f = Sheets("BDdata")
  Set bd = Range("a2:d" & [A65000].End(xlUp).Row)
  a = Application.index(bd, , 1)
  Tri a, 1, 1, UBound(a)
  '--villes +codes postaux
  ListeVille = Range("T_Ville").Value
  Me.ComboVille.List = ListeVille
  b = Application.index([T_Ville], Evaluate("Row(1:" & [T_Ville].Rows.Count & ")"), Array(2, 1))
  Tri b, 1, 1, UBound(b)
  Me.CodePostal.List = b

End Sub
or sur le fichier exemple ces variables ne sont déclarées nul part o_O

Je vous joint mon nouveau classeur, pourriez vous me dire ce que j'ai mal fait ?

Merci
 

Pièces jointes

  • 5852020102.xlsb
    355.2 KB · Affichages: 5

Discussions similaires