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

Problème type variant

benoa

XLDnaute Junior
Bonjour,

Après exécution d'une subroutine, j'obtiens : erreur 424 : "objet requis".
Dans mon code, j'ai un tableau de chaîne de caractère :

Dim t(10) As String
après initialisation, t=[ch1,ch2,ch3,...,ch10]


Ensuite je voudrais stocké dans une variable chaque élément du tableau puis effectuer un traitement de cette variable. Pour cela j'utilise une boucle FOR EACH :

Dim var As String
Dim i As Variant​

For Each i In t
var = i.Value()
"traitement"
Next i


Cependant, après exécution puis débogage, on m'indique une erreur 424 : "objet requis" sur la ligne var = i.Value(). Comment palier à ce problème?

Merci à tous pour vos suggestions
 

mikachu

XLDnaute Occasionnel
Re : Problème type variant

Bonjour,

Je ne comprend pas grand chose à ce que tu veux faire.
Peux-tu décrire plus précisemment la fonction que dois remplir ta macro et poster un fichier exemple exempt de données confidentielles ?

mikachu
 

benoa

XLDnaute Junior
Re : Problème type variant

Tu trouveras en pièce jointe un exemple, ici c'est MaSub à exécuter.

Cordialement
 

Pièces jointes

  • Monclasseur.xls
    23 KB · Affichages: 31
  • Monclasseur.xls
    23 KB · Affichages: 35
  • Monclasseur.xls
    23 KB · Affichages: 40

mikachu

XLDnaute Occasionnel
Re : Problème type variant

remplacer
VB:
var = i.value()
par
VB:
var = i

Ensuite,
VB:
Dim t(3) As String
te définis t(0), t(1), t(2) et t(3) soit 4 valeurs.

Si tu n'as que 3 vleurs à affcher alors il conviendra d'utiliser
VB:
Dim t(3) As String
 

Pièces jointes

  • Monclasseur.xls
    19.5 KB · Affichages: 46
  • Monclasseur.xls
    19.5 KB · Affichages: 49
  • Monclasseur.xls
    19.5 KB · Affichages: 49

benoa

XLDnaute Junior
Re : Problème type variant

Tes deux solutions fonctionnent.

Maintenant j'ai un autre problème, j'ai une erreur '91' dans mon "traitement" :
Je recherche maintenant dans mes deux feuilles la cellule contenant "var" et j'indique les lignes correspondantes.

Dim Cell3 As Range, Cell4 As Range, lig1 As Long, lig2 As Long

Set Cell3 = Sheets("feuil1").Cells.Find(What:=var, After:=Cells(1, 1), MatchCase:=False)
lig1 = Cell3.Row

Set Cell4 = Sheets("feuil2").Cells.Find(What:=var, After:=Cells(1, 1), MatchCase:=False)
lig2 = Cell4.Row​

Lors du debogage, l'affectation de Cell3, lig1 et Cell4 ne posent pas de problème, seul l'affectation de lig2 pose un problème : erreur '91', pourtant c'est exactement la même chose qu'au dessus.
 

Pierrot93

XLDnaute Barbatruc
Re : Problème type variant

Bonjour,

A tout hasard, "cell4" est bien initialisée par une cellule et n'est pas égale à "Nothing".... A vérifier dans la fenêtre des variables locales...

bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Problème type variant

Bonjour,

regarde peut être dans l'aide vba les arguments de la méthode "find", et plus précisement cette note :

bonne journée
@+
 

Discussions similaires

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