[VBA] Besoin d'un coup de main svp ^^
Résolu/Fermé
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
-
24 juin 2009 à 13:39
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 25 juin 2009 à 13:28
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 25 juin 2009 à 13:28
A voir également:
- [VBA] Besoin d'un coup de main svp ^^
- Bagage à main - Guide
- Jeter un coup d'oeil snap - Forum Snapchat
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Coup d'un soir avis ✓ - Forum Consommation & Internet
- Ma télé s'est éteinte d'un coup - Forum Téléviseurs
13 réponses
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
24 juin 2009 à 14:29
24 juin 2009 à 14:29
bonjour
il faut peut être déclarer explicitement la variable afin qu'elle soit considérée comme tel.
et l'initialiser sinon elle prned pour contenu son nom.
il faut peut être déclarer explicitement la variable afin qu'elle soit considérée comme tel.
et l'initialiser sinon elle prned pour contenu son nom.
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
24 juin 2009 à 14:39
24 juin 2009 à 14:39
ma variable semble être déclarée dans les normes :
Public var_designation
Public var_ref
Je ne comprend pas le probleme
Public var_designation
Public var_ref
Je ne comprend pas le probleme
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
24 juin 2009 à 14:43
24 juin 2009 à 14:43
est-elle initialisée ?
avant de l'utiliser essyez d'afficher son contenu pour voir ce qu'elle contient.
avant de l'utiliser essyez d'afficher son contenu pour voir ce qu'elle contient.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
24 juin 2009 à 15:30
24 juin 2009 à 15:30
Bonjour
l'initialiser c'est écrire ...
set var_ref = range("C3") par exemple.
A+
l'initialiser c'est écrire ...
set var_ref = range("C3") par exemple.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
25 juin 2009 à 09:01
25 juin 2009 à 09:01
le problème est que je ne veux pas afficher le résultat de ma formule dans une cellule mais directement dans une zone de texte sur mon Userform.
j'ai essayé de créer une macro pour afficher le résultat dans une cellule pour connaitre la synthaxe pour la formule en VBA. Malheureusement je ne trouve pas comment l'adapter à ma situation.
Merci à ceux qui se donnent la peine de m'aider.
j'ai essayé de créer une macro pour afficher le résultat dans une cellule pour connaitre la synthaxe pour la formule en VBA. Malheureusement je ne trouve pas comment l'adapter à ma situation.
Merci à ceux qui se donnent la peine de m'aider.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
25 juin 2009 à 09:32
25 juin 2009 à 09:32
Bonjour,
Amon avis, il faut que tu déclare une variable globale.
Avant le module, comme ça.
Public maVariable as string ' string ou integer ou variant
sub monmodule()
'ici les calculs
maVariable =sheets("feuil1").range("C3").value ' ou autre chose
userform1.show
end sub
et dans l'initialisation du userform tu met
userform1.textbox1.value=mavarible
Explique clairement ce que tu veux car on ne connaît ni ton code ni ton besoin.
A+
Amon avis, il faut que tu déclare une variable globale.
Avant le module, comme ça.
Public maVariable as string ' string ou integer ou variant
sub monmodule()
'ici les calculs
maVariable =sheets("feuil1").range("C3").value ' ou autre chose
userform1.show
end sub
et dans l'initialisation du userform tu met
userform1.textbox1.value=mavarible
Explique clairement ce que tu veux car on ne connaît ni ton code ni ton besoin.
A+
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
25 juin 2009 à 10:46
25 juin 2009 à 10:46
merci pour ton aide.
Je te donne ma ligne de code qui pose probleme:
var_designation = VLOOKUP(var_ref,'references'!R[2]C[2]:R[200]C[2],2,FALSE)
Je vais essayer ton alternative, mais ca ne m'arrange pas de passer par une cellule.
Je pense qu'il s'agit uniquement d'un problème de synthaxe.
Merci de m'aiguiller a nouveau.
Est-ce possible de récupérer une adresse MSN ? ca sera plus facile. Merci beaucoup
Je te donne ma ligne de code qui pose probleme:
var_designation = VLOOKUP(var_ref,'references'!R[2]C[2]:R[200]C[2],2,FALSE)
Je vais essayer ton alternative, mais ca ne m'arrange pas de passer par une cellule.
Je pense qu'il s'agit uniquement d'un problème de synthaxe.
Merci de m'aiguiller a nouveau.
Est-ce possible de récupérer une adresse MSN ? ca sera plus facile. Merci beaucoup
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
25 juin 2009 à 11:05
25 juin 2009 à 11:05
C'est bon j'ai compris ton erreur!!!
var_designation = VLOOKUP(var_ref,'references'!R[2]C[2]:R[200]C[2],2,FALSE)
cette fonction "vlookup" n'existe pas en visual basic du moins pas sous ce nom.
Quand tu recopies une fonction ici recherchev avec l'enregistreur VBA traduit la fonction en anglais ici vlookup mais il faut utiliser en VBA range.find
je regarde et je complète sauf si tu as trouvé.
A+
var_designation = VLOOKUP(var_ref,'references'!R[2]C[2]:R[200]C[2],2,FALSE)
cette fonction "vlookup" n'existe pas en visual basic du moins pas sous ce nom.
Quand tu recopies une fonction ici recherchev avec l'enregistreur VBA traduit la fonction en anglais ici vlookup mais il faut utiliser en VBA range.find
je regarde et je complète sauf si tu as trouvé.
A+
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
25 juin 2009 à 11:14
25 juin 2009 à 11:14
var_designation = range.find(var_ref,'references'!R[2]C[2]:R[200]C[2],2,FALSE)
ne marche pas non plus : sur l'apastrophe de " 'references' " il me dit :
Erreur de compilation
Attendu : Expression
ne marche pas non plus : sur l'apastrophe de " 'references' " il me dit :
Erreur de compilation
Attendu : Expression
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
25 juin 2009 à 11:26
25 juin 2009 à 11:26
Essaye en procédant comme ça!
j'ai adapté d'après l'aide de VBA ta recherche...
Sub test()
Dim C as variant
var_designation as variant
Dim VarRéf As Variant
'Je procéderai comme ça
' 1 ) je nomme la base1 en tant qu'objet
Set base1 = Sheets("feuil1").Range("E5:G8") ' la tu mets ta base
' 2) je crée une variable VarRéf : ce que tu cherches
VarRéf = Sheets("feuil1").Range("F2").Value
' tu peux utiliser une saisie différente
With Worksheets("feuil1").Range(base1.Address) ' il faut adapter ici ta base
Set c = .Find(VarRéf, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
var_designation = c.Offset(0, 1) ' je prend la valeur de la colonne à droite
Set c = .FindNext(c) ' ici on cherche le suivant
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
MsgBox ("résultat pour " & VarRéf & " : ..." & var_designation)
End Sub
j'ai adapté d'après l'aide de VBA ta recherche...
Sub test()
Dim C as variant
var_designation as variant
Dim VarRéf As Variant
'Je procéderai comme ça
' 1 ) je nomme la base1 en tant qu'objet
Set base1 = Sheets("feuil1").Range("E5:G8") ' la tu mets ta base
' 2) je crée une variable VarRéf : ce que tu cherches
VarRéf = Sheets("feuil1").Range("F2").Value
' tu peux utiliser une saisie différente
With Worksheets("feuil1").Range(base1.Address) ' il faut adapter ici ta base
Set c = .Find(VarRéf, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
var_designation = c.Offset(0, 1) ' je prend la valeur de la colonne à droite
Set c = .FindNext(c) ' ici on cherche le suivant
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
MsgBox ("résultat pour " & VarRéf & " : ..." & var_designation)
End Sub
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
25 juin 2009 à 11:34
25 juin 2009 à 11:34
j'essaie ta solution. Merci pour toute ton aide, je te tiens au courant pour la suite ^^
Alanderson69
Messages postés
35
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
10 juillet 2009
25 juin 2009 à 13:26
25 juin 2009 à 13:26
ca marche ! merci pour ton aide ! Petite question subsidiaire : comment fais ton pour rechercher dans une colonne qui se trouve avant la colonne contenant la valeur ?
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
25 juin 2009 à 13:28
25 juin 2009 à 13:28
Cela se passe là
var_designation = c.Offset(0, 1) ' je prend la valeur de la colonne à droite
var_designation = c.Offset(0, -1) ' je prend la valeur de la colonne à gauche
quand tout sera ok met en résolu
et n'hésite pas à revenir.
A+
var_designation = c.Offset(0, 1) ' je prend la valeur de la colonne à droite
var_designation = c.Offset(0, -1) ' je prend la valeur de la colonne à gauche
quand tout sera ok met en résolu
et n'hésite pas à revenir.
A+