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,

regarde peut être dans l'aide vba les arguments de la méthode "find", et plus précisement cette note :
Notes
Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que vous utilisez cette méthode.

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
311 713
Messages
2 081 808
Membres
101 819
dernier inscrit
lukumubarth