Vba: Importer valeur externe dans userform
Résolu
renoncule62
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
renoncule62 Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
renoncule62 Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne parviens pas à trouver réponse à ce que je cherche à faire et de plus, j'avais posté dans un Forum inadapté(bureautique), je me permet donc de répéter ma demande ici:
tout d'abord, est-il possible de récupérer, dans un textbox d'userform, la valeur d' une cellule d'un autre classeur fermé?
sinon ouvert ?
quelle serait la synthaxe? du style....
userform1.textbox1.caption=c:\mondossier\monsous dossier\worbook1\sheet1\cell(1,1).value
Merci de votre aide
Je ne parviens pas à trouver réponse à ce que je cherche à faire et de plus, j'avais posté dans un Forum inadapté(bureautique), je me permet donc de répéter ma demande ici:
tout d'abord, est-il possible de récupérer, dans un textbox d'userform, la valeur d' une cellule d'un autre classeur fermé?
sinon ouvert ?
quelle serait la synthaxe? du style....
userform1.textbox1.caption=c:\mondossier\monsous dossier\worbook1\sheet1\cell(1,1).value
Merci de votre aide
A voir également:
- Vba: Importer valeur externe dans userform
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
9 réponses
Bonjour
demande:22h50
impatience: 8h01
Laisse nous dormir! :-(
https://www.cjoint.com/?3KsiwRUEq2Z
le classeur source reste fermé
a incorporer dans les codes de l'userform
Michel
demande:22h50
impatience: 8h01
Laisse nous dormir! :-(
https://www.cjoint.com/?3KsiwRUEq2Z
le classeur source reste fermé
a incorporer dans les codes de l'userform
chemin = "dossier_du_classeur_source" 'R7C4<==> D7 textbox1 = ExecuteExcel4Macro("'" & chemin & "\[source.xls]Feuil1'!R7C4") --
Michel
Merci Michel,
Je pensais queconccernant le fichier joint, il s'agissait d'un exemple mais.....
en tout cas il n'en est rien, j' imagine que dans le domaine de la programmation ça travaille aussi la nuit.
Pour ma part, je ne suis pas un crac en VBA mais j'aime ça et cherche aussi à approfondir les réponses qui me sont sympathiquement données.
concernant le sujet du post, je ne connaissais pas cette fonction (merci aussi à Mr Walkenbach).
Ca marche (bien sure) à ceci prét que dans l'execution de la macro une fenetre "mettre à jour les valeurs : source.xls" s'affiche, m'invitant à sélectionner le fichier en question. Est-il possible d'éviter cette fenêtre pour importer directement les données de source.xls stp ?
Merci encore et stp pas de 3KsiwRUEq2Z, je suis pas ccomme ça!
Je pensais queconccernant le fichier joint, il s'agissait d'un exemple mais.....
en tout cas il n'en est rien, j' imagine que dans le domaine de la programmation ça travaille aussi la nuit.
Pour ma part, je ne suis pas un crac en VBA mais j'aime ça et cherche aussi à approfondir les réponses qui me sont sympathiquement données.
concernant le sujet du post, je ne connaissais pas cette fonction (merci aussi à Mr Walkenbach).
Ca marche (bien sure) à ceci prét que dans l'execution de la macro une fenetre "mettre à jour les valeurs : source.xls" s'affiche, m'invitant à sélectionner le fichier en question. Est-il possible d'éviter cette fenêtre pour importer directement les données de source.xls stp ?
Merci encore et stp pas de 3KsiwRUEq2Z, je suis pas ccomme ça!
re,
"mettre à jour les valeurs : source.xls"
jamais vu cette fen^tre
mais peut-^tre
source est le nom du classeur dans ma maquette! il faut que tu écrives le nom de ton classeur où tu vas chercher la valeur
ci jopint l'exemple; n'aie pas peur! :o)
https://www.cjoint.com/?3Ksksngr3lv
mais ca fait longtemps que je ne l'ai pas testé, mais c'est pour savoir si il se passe le m^me phénomène chez toi
"mettre à jour les valeurs : source.xls"
jamais vu cette fen^tre
mais peut-^tre
source est le nom du classeur dans ma maquette! il faut que tu écrives le nom de ton classeur où tu vas chercher la valeur
ci jopint l'exemple; n'aie pas peur! :o)
https://www.cjoint.com/?3Ksksngr3lv
mais ca fait longtemps que je ne l'ai pas testé, mais c'est pour savoir si il se passe le m^me phénomène chez toi
Effectivement dans ton exemple ça fonctionne avec les fichiers source et destination dans le même dossier et la ommande "chemin = ThisWorkbook.Path".
Par contre dans le cas ou mon fichier source se trouve dans un autre dossier, ce qui donnerait par exemple:
chemin="c:\mondossier\monsousdossier\source.xls"
ça ne fonctionne pas directement et la fenêtre est appelée?
peux tu m'expliquer la corrélation entre les coordonnées de cellules de la fonction Walkenbach du type R7C4 qui correspond à D7 stp
Merci encore pour ton aide Michel
Par contre dans le cas ou mon fichier source se trouve dans un autre dossier, ce qui donnerait par exemple:
chemin="c:\mondossier\monsousdossier\source.xls"
ça ne fonctionne pas directement et la fenêtre est appelée?
peux tu m'expliquer la corrélation entre les coordonnées de cellules de la fonction Walkenbach du type R7C4 qui correspond à D7 stp
Merci encore pour ton aide Michel
il ne faut pas mettre le classeur dans la variable chemin
mais tu n'es pas obligé d'utiliser une variable si "source" est toujours au m^me endroit
a vérifier
nota: ("' lire guillement-apostrophe
RxCy
R =ligne, x numéro de ligne
C=colonne, numéro de colonne (A=1,B=2, C=3.......AA=27....)
donc R7C4 <===>D4
chemin="c:\mondossier\monsousdossier"
mais tu n'es pas obligé d'utiliser une variable si "source" est toujours au m^me endroit
ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R7C4")
a vérifier
nota: ("' lire guillement-apostrophe
RxCy
R =ligne, x numéro de ligne
C=colonne, numéro de colonne (A=1,B=2, C=3.......AA=27....)
donc R7C4 <===>D4
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
je voulais classé ce post en "résolu"puisque l'aide de Michel m'a permis d'y parvenir.
je laisse en piéce jointe un exemple de ce que je souhaitais obtenir pour ceux qui seraient de passsage pour ce type de recherche.
pour rappel, je souhaitais, à l'ouverture d'un userform, appeler, sous forme de Label ou textbox, des valeurs de cellules contenues dans un classeur externe fermé .
dans l'exemple, on considére que le fichier source se trouve sur le bureau.
il vous faudra modifier les liens de "Private Sub UserForm_Activate()" en fonction de l'emplacement de ce fichier.
sur appel de l'userform via le bouton, on reçoit les valeurs du fichier source dans cet userform sur les labels 1, 2 et 3
encore un grand merci pour toutes ces explications Michel
https://www.cjoint.com/?AKsxqP8EI2c
je voulais classé ce post en "résolu"puisque l'aide de Michel m'a permis d'y parvenir.
je laisse en piéce jointe un exemple de ce que je souhaitais obtenir pour ceux qui seraient de passsage pour ce type de recherche.
pour rappel, je souhaitais, à l'ouverture d'un userform, appeler, sous forme de Label ou textbox, des valeurs de cellules contenues dans un classeur externe fermé .
dans l'exemple, on considére que le fichier source se trouve sur le bureau.
il vous faudra modifier les liens de "Private Sub UserForm_Activate()" en fonction de l'emplacement de ce fichier.
sur appel de l'userform via le bouton, on reçoit les valeurs du fichier source dans cet userform sur les labels 1, 2 et 3
encore un grand merci pour toutes ces explications Michel
https://www.cjoint.com/?AKsxqP8EI2c
Bonjour,
avec la fonction:
ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R7C4"),
si je veux rechercher si une valeur est présente dans une plage, comment dois-je remplacer R1C1 pour la plage, j'ai essayé de nommer ma plage mais ça ne fonctionne pas, j'ai essayé aussi ("R1C1:R9C1")mais sans succcés. Connaitriez vous la bonne syntaxe si toutefois c'est faisable.
le code ci dessous fonctionne mais avec une seule référence de cellule(R1C1).
Merci de m'éclairer, c'est sympa.
avec la fonction:
ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R7C4"),
si je veux rechercher si une valeur est présente dans une plage, comment dois-je remplacer R1C1 pour la plage, j'ai essayé de nommer ma plage mais ça ne fonctionne pas, j'ai essayé aussi ("R1C1:R9C1")mais sans succcés. Connaitriez vous la bonne syntaxe si toutefois c'est faisable.
le code ci dessous fonctionne mais avec une seule référence de cellule(R1C1).
Private Sub Worksheet_Change(ByVal Target As Range) If Target = ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R1C1") Then MsgBox "Trouvé" & " " & Target.Value end if end sub
Merci de m'éclairer, c'est sympa.
Bonsoir et merci Michel,
donc pas de possibilité d' aboutir à ce que je souhaite.
y a t-il un moyen de contourner?
Merci
Cdlt
donc pas de possibilité d' aboutir à ce que je souhaite.
y a t-il un moyen de contourner?
Merci
Cdlt
Bonjour,
C'est testé et ça marche avec le R" & lig & "C1 ! Me reste maintenant à l'adapter , me familiariser et comprendre toutes ces fonctions (for, next, to...)
merci encore Michel, c'est sympa.
C'est testé et ça marche avec le R" & lig & "C1 ! Me reste maintenant à l'adapter , me familiariser et comprendre toutes ces fonctions (for, next, to...)
merci encore Michel, c'est sympa.
pour te familiariser avec VBA
http://www.info-3000.com/
très cool et pédagogique
et seulement ensuite
https://bidou.developpez.com/article/VBA/
complet et indispenable, mais ca ne se lit pas un roman policier
http://www.info-3000.com/
très cool et pédagogique
et seulement ensuite
https://bidou.developpez.com/article/VBA/
complet et indispenable, mais ca ne se lit pas un roman policier
Bonjour,
Je met une simplification de mon code finalisé pour que ça puisse servir pour d'autres...
la fonction recherchée:
aprés saisie sur une cellule, je vérifie si la valeur qui vient d' y être entrée se trouve dans une plage de cellules d'un autre classeur fermé. Si oui, une instruction et si non une autre
Voilà et même si je me répéte.... merci encore à Michel que j'ai aperçu (de nom) dans quelques forums.
Je met une simplification de mon code finalisé pour que ça puisse servir pour d'autres...
la fonction recherchée:
aprés saisie sur une cellule, je vérifie si la valeur qui vient d' y être entrée se trouve dans une plage de cellules d'un autre classeur fermé. Si oui, une instruction et si non une autre
Voilà et même si je me répéte.... merci encore à Michel que j'ai aperçu (de nom) dans quelques forums.
Private Sub Worksheet_Change(ByVal Target As Range) For lig = 1 To 9 If ExecuteExcel4Macro("'C:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R" & lig & "C1") = Target Then MsgBox "trouvé" & " " & Target.Value GoTo fin End If Next MsgBox "pas trouvé" & " " & Target.Value fin: End Sub