Problème variables VBA
Résolu/Fermé
funbreizhou
Messages postés
76
Date d'inscription
samedi 10 octobre 2009
Statut
Membre
Dernière intervention
3 novembre 2011
-
27 mars 2011 à 16:09
funbreizhou Messages postés 76 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 3 novembre 2011 - 27 mars 2011 à 21:41
funbreizhou Messages postés 76 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 3 novembre 2011 - 27 mars 2011 à 21:41
A voir également:
- Problème variables VBA
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
4 réponses
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 27/03/2011 à 17:02
Modifié par ccm81 le 27/03/2011 à 17:02
bonjour
1. Dans ton code CHARA est le nom d'une variable de type chaine, et ce qui est une chaine, ce n'est pas le nom de la variable mais son type (son contenu).
En bref, tu confonds le nom de la variable et son type
2.
tu dois ecrire
tu verras alors que CHARA0, considéré comme une nouvelle variable, n'a pas été déclarée
quant à
CHARA& nb, VBA ne peut pas l'interpréter, d'où le message d'erreur
4. Une question, que veux tu que ta procedure fasse?
bonne suite
1. Dans ton code CHARA est le nom d'une variable de type chaine, et ce qui est une chaine, ce n'est pas le nom de la variable mais son type (son contenu).
En bref, tu confonds le nom de la variable et son type
2.
Dim CHARA, Z As Stringdéclare Z de type string, mais n'attribue pas un type a CHARA
tu dois ecrire
Dim CHARA as string, Z As String3. Pour avoir une idée de ce qui se passe tu mets
option expliciten début de module, ce qui t'oblige a déclarer toutes les variables utilisées
tu verras alors que CHARA0, considéré comme une nouvelle variable, n'a pas été déclarée
quant à
CHARA& nb, VBA ne peut pas l'interpréter, d'où le message d'erreur
4. Une question, que veux tu que ta procedure fasse?
bonne suite
funbreizhou
Messages postés
76
Date d'inscription
samedi 10 octobre 2009
Statut
Membre
Dernière intervention
3 novembre 2011
11
27 mars 2011 à 17:18
27 mars 2011 à 17:18
j'ai pris en compte tes conseils :
Sub essai()
Dim CHARA As String, Z As String
Dim CHARA0 As String
Dim nb As Integer
CHARA0 = ""
For nb = 1 To 5
CHARA& nb = "aa" & CHARA & (nb - 1)
Z = CHARA&(nb)
MsgBox Z
Next
End Sub
J'ai toujours le même soucis. Je ne vois pas ce que ça change pour la déclaration de mon CHARA.
Ce que je cherche à faire c'est concaténer les valeurs :
CHARA1 = CHARA0 & CHARA1
CHARA2 = CHARA1 & CHARA2
...
CHARA5 = CHARA4 & CHARA 5
Avec tous les CHARA définit publiquement par une lettre.
de manière à avoir par exemple CHARA5 = axcy
Mais j'ai pas compris ce que tu me disais, pour toi je ne peux pas concaténer CHARA&nb ?
Merci de ton aide !
Sub essai()
Dim CHARA As String, Z As String
Dim CHARA0 As String
Dim nb As Integer
CHARA0 = ""
For nb = 1 To 5
CHARA& nb = "aa" & CHARA & (nb - 1)
Z = CHARA&(nb)
MsgBox Z
Next
End Sub
J'ai toujours le même soucis. Je ne vois pas ce que ça change pour la déclaration de mon CHARA.
Ce que je cherche à faire c'est concaténer les valeurs :
CHARA1 = CHARA0 & CHARA1
CHARA2 = CHARA1 & CHARA2
...
CHARA5 = CHARA4 & CHARA 5
Avec tous les CHARA définit publiquement par une lettre.
de manière à avoir par exemple CHARA5 = axcy
Mais j'ai pas compris ce que tu me disais, pour toi je ne peux pas concaténer CHARA&nb ?
Merci de ton aide !
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 27/03/2011 à 18:58
Modifié par ccm81 le 27/03/2011 à 18:58
re
1. reprenons ton code
- le signe = permet d'affecter une valeur (celle est après le signe =) à la variable (qui est avant le signe =)
CHARA = etc ... est correct (CHARA est une variable)
CHARA & nb = etc ... ne l'est pas (CHARA & nb n'est pas une variable)
- pour l'identificateur CHARA placé a droite du "=" , c'est sa valeur qui est prise en compte, valeur que tu peux concaténer avec "aa" à gauche et (nb-1) à droite avant d'affecter le résultat à la variable CHARA
CHARA = "aa" & CHARA & (nb-1) est correct
2. En fait, tu fais une mauvaise utilisation de l'affectation
par exemple,
A = 5 permet d'affecter à la variable A la valeur 5
A = A+1, est une façon correcte d'ajouter 1 à la variable A
3. Dans ton dernier message, les variables CHARA1, CHARA2, etc n'existent pas. L'écriture CHARA & nb placée à gauche du signe = n'est pas comprise par VBA et ne permet pas de fabriquer de nouvelles variables
4. un code permettant de faire évoluer la variable CHARA
bonne suite
1. reprenons ton code
CHARA & nb = "aa" & CHARA & (nb - 1)
- le signe = permet d'affecter une valeur (celle est après le signe =) à la variable (qui est avant le signe =)
CHARA = etc ... est correct (CHARA est une variable)
CHARA & nb = etc ... ne l'est pas (CHARA & nb n'est pas une variable)
- pour l'identificateur CHARA placé a droite du "=" , c'est sa valeur qui est prise en compte, valeur que tu peux concaténer avec "aa" à gauche et (nb-1) à droite avant d'affecter le résultat à la variable CHARA
CHARA = "aa" & CHARA & (nb-1) est correct
2. En fait, tu fais une mauvaise utilisation de l'affectation
par exemple,
A = 5 permet d'affecter à la variable A la valeur 5
A = A+1, est une façon correcte d'ajouter 1 à la variable A
3. Dans ton dernier message, les variables CHARA1, CHARA2, etc n'existent pas. L'écriture CHARA & nb placée à gauche du signe = n'est pas comprise par VBA et ne permet pas de fabriquer de nouvelles variables
4. un code permettant de faire évoluer la variable CHARA
CHARA = "" For nb = 1 To 5 CHARA = "aa" & CHARA & (nb - 1) Z = CHARA MsgBox Z Next
bonne suite
funbreizhou
Messages postés
76
Date d'inscription
samedi 10 octobre 2009
Statut
Membre
Dernière intervention
3 novembre 2011
11
27 mars 2011 à 21:41
27 mars 2011 à 21:41
Ah ok !
Je te remercie pour ton aide.
Je vais essayer ça tout de suite
Bonne soirée.
Je te remercie pour ton aide.
Je vais essayer ça tout de suite
Bonne soirée.