Erreur variable requise vba
Résolu/Fermé
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
-
3 avril 2008 à 15:43
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 - 7 avril 2008 à 12:03
niny@ Messages postés 107 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 16 septembre 2008 - 7 avril 2008 à 12:03
A voir également:
- Erreur variable requise vba
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Action requise sur le compte - Forum Téléphones & tablettes Android
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Incompatibilité de type vba ✓ - Forum Programmation
5 réponses
Utilisateur anonyme
3 avril 2008 à 16:02
3 avril 2008 à 16:02
Bonjour,
Vous tenté ici de faire une substitution et non une affectation.
Décomposé le problème pas à pas :
Option Explicit
Sub Insertion()
Dim Valeur As String, varTexte As String
' Mid(Cells(lig, col).Value, pos, 1) = label_cache
Valeur = Cells(lig, col).Value
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache & Mid(Valeur, (pos + 1))
Cells(lig, col).Value = varTexte
End Sub
Vous tenté ici de faire une substitution et non une affectation.
Décomposé le problème pas à pas :
Option Explicit
Sub Insertion()
Dim Valeur As String, varTexte As String
' Mid(Cells(lig, col).Value, pos, 1) = label_cache
Valeur = Cells(lig, col).Value
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache & Mid(Valeur, (pos + 1))
Cells(lig, col).Value = varTexte
End Sub
freto
Messages postés
1543
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
162
3 avril 2008 à 16:40
3 avril 2008 à 16:40
en fait varTexte = Mid(Valeur, 1, pos(-1)) & label_cache & Mid(Valeur, (pos + 1)) va récupérer le résultat de
Mid(Valeur, 1, pos(-1)) et le concaténer avec label_cache et concaténer le tout avec Mid(Valeur, (pos + 1))
enfin Cells(lig, col).Value = varTexte va affecter la valeur de varTexte à la cellule (lig,col)
Mid(Valeur, 1, pos(-1)) et le concaténer avec label_cache et concaténer le tout avec Mid(Valeur, (pos + 1))
enfin Cells(lig, col).Value = varTexte va affecter la valeur de varTexte à la cellule (lig,col)
Utilisateur anonyme
3 avril 2008 à 16:45
3 avril 2008 à 16:45
re :
Mid(Cells(lig, col).Value, pos, 1) = label_cache
L'instruction Mid sous entend que vous tenter d'insérer un texte dans
une chaine [ Cells(lig, col).Value ] à la position [ pos ] pour 1 caractère.
suposons que la valeur de la cellule est : [ abc0xyx ] et que label_cache = 5
et que tentiez d'insérer une valeur à la 4ième position
si pos = 4
Ici varTexte recupère les trois premiers caratères de la chaine
varTexte = Mid(Valeur, 1, pos(-1))
[varTexte = "abc" ]
Ici varTexte recupère les trois premiers caratères de la chaine et concatène la valeur dans label_cache
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache
[varTexte = "abc5" ]
Ici varTexte recupère les trois premiers caratères de la chaine et concatène la valeur dans label_cache
et concatnène le reste de la chaine
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache & Mid(Valeur, (pos + 1))
[varTexte = "abc50xyz" ]
Lupin
Mid(Cells(lig, col).Value, pos, 1) = label_cache
L'instruction Mid sous entend que vous tenter d'insérer un texte dans
une chaine [ Cells(lig, col).Value ] à la position [ pos ] pour 1 caractère.
suposons que la valeur de la cellule est : [ abc0xyx ] et que label_cache = 5
et que tentiez d'insérer une valeur à la 4ième position
si pos = 4
Ici varTexte recupère les trois premiers caratères de la chaine
varTexte = Mid(Valeur, 1, pos(-1))
[varTexte = "abc" ]
Ici varTexte recupère les trois premiers caratères de la chaine et concatène la valeur dans label_cache
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache
[varTexte = "abc5" ]
Ici varTexte recupère les trois premiers caratères de la chaine et concatène la valeur dans label_cache
et concatnène le reste de la chaine
varTexte = Mid(Valeur, 1, pos(-1)) & label_cache & Mid(Valeur, (pos + 1))
[varTexte = "abc50xyz" ]
Lupin
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
3 avril 2008 à 17:11
3 avril 2008 à 17:11
si j'ai bien compris donc pour moi :
ma chaine dans mon tableau est : opt__|inst?|cal!|id~|
il faut que je mette la valeur de mon label caché aprés le ~
valeur= cells(lig,col).value
pos = instr(1,valeur,"~")
vartexte = mid(valeur,1,pos +1) & label_cache
mais je vois pas trop où je récupère la chaine dans mon tableau, la chaine complétée ?
dsl mais j'ai vraiment du mal sur ce point :-(
ma chaine dans mon tableau est : opt__|inst?|cal!|id~|
il faut que je mette la valeur de mon label caché aprés le ~
valeur= cells(lig,col).value
pos = instr(1,valeur,"~")
vartexte = mid(valeur,1,pos +1) & label_cache
mais je vois pas trop où je récupère la chaine dans mon tableau, la chaine complétée ?
dsl mais j'ai vraiment du mal sur ce point :-(
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
>
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
3 avril 2008 à 17:37
3 avril 2008 à 17:37
en fait c'est bon maintenant je récupère bien ce que je veux mais ca me suprime le ~ et me met deux espaces entre id et la valeur du label caché
pos1 = InStr(1, Cells(lig, col).Value, "~")
valeur2 = Cells(lig, col)
varTexte = Mid(valeur2, 1, pos1 - 1) & label_ca
Cells(lig, col).Value = varTexte
pos1 = InStr(1, Cells(lig, col).Value, "~")
valeur2 = Cells(lig, col)
varTexte = Mid(valeur2, 1, pos1 - 1) & label_ca
Cells(lig, col).Value = varTexte
Utilisateur anonyme
3 avril 2008 à 17:59
3 avril 2008 à 17:59
re :
Lupin
Sub Traitement() Dim Lig As Long, Col As Long, Pos1 As Long Dim Valeur2 As Variant, label_cache As Long Dim varTexte As String Lig = 5: Col = 5: label_cache = 5 Pos1 = InStr(1, Cells(Lig, Col).Value, "~") Valeur2 = Cells(Lig, Col).Value ' Découpé en exécution pas à pas avec un espion sur varTexte varTexte = Mid(Valeur2, 1, Pos1) varTexte = varTexte & Trim(label_cache) varTexte = varTexte & Mid(Valeur2, (Pos1 + 1)) ' Sur une seule ligne, ça donne varTexte = Mid(Valeur2, 1, Pos1) & Trim(label_cache) & Mid(Valeur2, (Pos1 + 1)) Cells(Lig, Col).Value = varTexte End Sub '
Lupin
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
3 avril 2008 à 20:44
3 avril 2008 à 20:44
cool ca fonctionne trés bien !
je te remercie beaucoup pour ton aide et explications !!!
je peux continuer mon programme!
bonne soirée
encore merci
je te remercie beaucoup pour ton aide et explications !!!
je peux continuer mon programme!
bonne soirée
encore merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
4 avril 2008 à 15:45
4 avril 2008 à 15:45
re :
Ce fut un plaisirs :-)
Bonne continuité.
Michel ( alias Lupin )
Ce fut un plaisirs :-)
Bonne continuité.
Michel ( alias Lupin )
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
6 avril 2008 à 20:32
6 avril 2008 à 20:32
j'ai encore une petite question :
an faisant ce type d'insertion, quand je rajoute un élèment dans la chaine je n'ai plus la suite de celle ci.
j'ai essayé de changer l'ordre de traitement de ma chaine c'est à dire : l'insertion du nom de l'install apres ?, puis cal aprés ! et id apres le ~ , résulat ca fait n'importe quoi.
si je fais élèment aprés élements ca m'efface ce qui suit mon insertion. ceci vient de mon affectation au niveau de la cellule non ?
encore merci, aprés je t'embete plus sur ca lol
an faisant ce type d'insertion, quand je rajoute un élèment dans la chaine je n'ai plus la suite de celle ci.
j'ai essayé de changer l'ordre de traitement de ma chaine c'est à dire : l'insertion du nom de l'install apres ?, puis cal aprés ! et id apres le ~ , résulat ca fait n'importe quoi.
si je fais élèment aprés élements ca m'efface ce qui suit mon insertion. ceci vient de mon affectation au niveau de la cellule non ?
encore merci, aprés je t'embete plus sur ca lol
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
>
niny@
Messages postés
107
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
16 septembre 2008
7 avril 2008 à 12:03
7 avril 2008 à 12:03
c'est bon dans mon cas il suffisait de faire :
type_breaker = Mid(Cells(lig, col).Value, 1, 4)
valeur = type_breaker & "|INST?" & nom_insta & "|CAL!" & Mid(label_ca, 3) & "|ID~" & label_cache
MsgBox valeur
Cells(lig, col).Value = valeur
et ca récupère toute la chaine souhaitée. merci pour tout
type_breaker = Mid(Cells(lig, col).Value, 1, 4)
valeur = type_breaker & "|INST?" & nom_insta & "|CAL!" & Mid(label_ca, 3) & "|ID~" & label_cache
MsgBox valeur
Cells(lig, col).Value = valeur
et ca récupère toute la chaine souhaitée. merci pour tout
3 avril 2008 à 16:17
par contre je ne comprend pas trop pourquoi cette syntaxe pour la varTexte, que signifie t'elle ?