Vba: Importer valeur externe dans userform
Résolu/Fermé
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
-
17 nov. 2011 à 22:50
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 25 nov. 2011 à 13:10
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 25 nov. 2011 à 13:10
A voir également:
- Vba: Importer valeur externe dans userform
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
9 réponses
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
18 nov. 2011 à 08:01
18 nov. 2011 à 08:01
Bonjour,
Personne pour me venir en aide svp ?
Merci.
Personne pour me venir en aide svp ?
Merci.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
18 nov. 2011 à 08:23
18 nov. 2011 à 08:23
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
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
18 nov. 2011 à 09:44
18 nov. 2011 à 09:44
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!
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 18/11/2011 à 10:21
Modifié par michel_m le 18/11/2011 à 10:21
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
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
18 nov. 2011 à 12:16
18 nov. 2011 à 12:16
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
18 nov. 2011 à 12:57
18 nov. 2011 à 12:57
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
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
18 nov. 2011 à 23:23
18 nov. 2011 à 23:23
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
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
18 nov. 2011 à 23:25
18 nov. 2011 à 23:25
Je voulais classer...
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
24 nov. 2011 à 17:13
24 nov. 2011 à 17:13
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
24 nov. 2011 à 18:08
24 nov. 2011 à 18:08
bonjour
ça ne marche qu'avec 1 seule cellule
ça ne marche qu'avec 1 seule cellule
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
24 nov. 2011 à 19:57
24 nov. 2011 à 19:57
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
24 nov. 2011 à 22:07
24 nov. 2011 à 22:07
Oui tu fais une boucle sur les 9 cellules
(ou tu écris 9 lignes)
principe
for lig= 1 to 9
ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R" & lig & "C1")
next
non testé
(ou tu écris 9 lignes)
principe
for lig= 1 to 9
ExecuteExcel4Macro("'c:\mondossier\monsousdossier\[monclasseur.xls]Feuil1'!R" & lig & "C1")
next
non testé
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
25 nov. 2011 à 08:46
25 nov. 2011 à 08:46
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
25 nov. 2011 à 09:31
25 nov. 2011 à 09:31
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
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
25 nov. 2011 à 13:10
25 nov. 2011 à 13:10
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