Problème type variant

  • Initiateur de la discussion Initiateur de la discussion benoa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

benoa

Guest
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
 
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
 
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

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.
 
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
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
911
Réponses
3
Affichages
922
D
Réponses
4
Affichages
433
DidPouAxi
D
Retour