Question sur getopenfilname
Résolu/Fermé
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
-
3 déc. 2012 à 23:52
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 6 déc. 2012 à 06:54
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 6 déc. 2012 à 06:54
6 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
4 déc. 2012 à 09:17
4 déc. 2012 à 09:17
Bonjour,
J'ai copier sur ce forum un code qui marche bien
Peux tu, afin que nous répondions à ta question, nous donner ici ce fameux code qui marche si bien?
J'ai copier sur ce forum un code qui marche bien
Peux tu, afin que nous répondions à ta question, nous donner ici ce fameux code qui marche si bien?
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
4 déc. 2012 à 21:44
4 déc. 2012 à 21:44
Bonjour, il y a celui-ci :
Public Sub insere_image()
Dim ficimg As Variant
ficimg = Application.GetOpenFilename(".jpg,*.jpg", , "Choisissez l'image") ' choix nom du fichier
ActiveSheet.Pictures.Insert(ficimg).Select ' insertion
With Selection.ShapeRange
.LockAspectRatio = False ' proportions d'origine lorsque vous la redimensionnez
.Top = ActiveCell.Top ' haut de la cellule
.Left = ActiveCell.Left ' gauche de la cellule
.Height = ActiveCell.RowHeight ' hauteur de la cellule
.Width = ActiveCell.Width ' largeur de la cellule
End With
With Selection
.PrintObject = True ' l'objet est imprimé en même temps que le document
.Placement = xlMoveAndSize ' manière dont l'objet est lié aux cellules
End With
End Sub
ou celui-là :
Private Sub Triangleisocèle3_Clic()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
'Dimensionne la cellule
ActiveCell.Offset().RowHeight = 63.75
ActiveCell.Offset().ColumnWidth = 13.86
'sélectionne la cellule de réception
L = ActiveCell.Left
T = ActiveCell.Top
W = ActiveCell.Width
H = ActiveCell.Height
Image = Application.GetOpenFilename
If Image <> False Then
ActiveSheet.Shapes.AddPicture Image, True, True, L, T, W, H
End If
End Sub
j'aurais voulu déposer aussi la feuille de calcul sur laquelle je travaille mais je ne sais pas si on peut déposer un fichier excel sur cette page du site, je n'ai pas trouvé. En gros, j'essaie de faire un bon de commande de menuiseries et je voudrais selectionner le type de fenêtre (2vantaux ou 1 vantail par exemple) dans un fichier image et que cela apparaisse dans la cellule active.
L'idéal étant que la macro s'execute non pas en cliquant sur une forme mais directement dans la cellule active et que le nom de la fenêtre soit lié à l'image (par exemple je selectionne l'image correspondant à un carré et un texte est déposé dans une autre cellule qui decrirait l'image en inscriavant le mot "carré".
Je ne sais pas si je suis clair ?...
Public Sub insere_image()
Dim ficimg As Variant
ficimg = Application.GetOpenFilename(".jpg,*.jpg", , "Choisissez l'image") ' choix nom du fichier
ActiveSheet.Pictures.Insert(ficimg).Select ' insertion
With Selection.ShapeRange
.LockAspectRatio = False ' proportions d'origine lorsque vous la redimensionnez
.Top = ActiveCell.Top ' haut de la cellule
.Left = ActiveCell.Left ' gauche de la cellule
.Height = ActiveCell.RowHeight ' hauteur de la cellule
.Width = ActiveCell.Width ' largeur de la cellule
End With
With Selection
.PrintObject = True ' l'objet est imprimé en même temps que le document
.Placement = xlMoveAndSize ' manière dont l'objet est lié aux cellules
End With
End Sub
ou celui-là :
Private Sub Triangleisocèle3_Clic()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
'Dimensionne la cellule
ActiveCell.Offset().RowHeight = 63.75
ActiveCell.Offset().ColumnWidth = 13.86
'sélectionne la cellule de réception
L = ActiveCell.Left
T = ActiveCell.Top
W = ActiveCell.Width
H = ActiveCell.Height
Image = Application.GetOpenFilename
If Image <> False Then
ActiveSheet.Shapes.AddPicture Image, True, True, L, T, W, H
End If
End Sub
j'aurais voulu déposer aussi la feuille de calcul sur laquelle je travaille mais je ne sais pas si on peut déposer un fichier excel sur cette page du site, je n'ai pas trouvé. En gros, j'essaie de faire un bon de commande de menuiseries et je voudrais selectionner le type de fenêtre (2vantaux ou 1 vantail par exemple) dans un fichier image et que cela apparaisse dans la cellule active.
L'idéal étant que la macro s'execute non pas en cliquant sur une forme mais directement dans la cellule active et que le nom de la fenêtre soit lié à l'image (par exemple je selectionne l'image correspondant à un carré et un texte est déposé dans une autre cellule qui decrirait l'image en inscriavant le mot "carré".
Je ne sais pas si je suis clair ?...
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 déc. 2012 à 21:53
4 déc. 2012 à 21:53
Bonsoir 1chticanon,
Pour déposer un fichier, il faut le faire sur un site indépendant, tel que "cjoint.com".
Tu nous met le lien sur ton prochain message, c'est tout.
ATTENTION de supprimer toutes données sensibles, merci.
Pour déposer un fichier, il faut le faire sur un site indépendant, tel que "cjoint.com".
Tu nous met le lien sur ton prochain message, c'est tout.
ATTENTION de supprimer toutes données sensibles, merci.
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
4 déc. 2012 à 22:05
4 déc. 2012 à 22:05
Merci pour le tuyau je ne connaissais pas ce site.
Je ne joint que la feuille de calcul, le fichier image n'est pas encore fait.
Voici- le lien :
https://www.cjoint.com/?0LewdeM7MPm
Je ne joint que la feuille de calcul, le fichier image n'est pas encore fait.
Voici- le lien :
https://www.cjoint.com/?0LewdeM7MPm
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 déc. 2012 à 23:25
4 déc. 2012 à 23:25
Bonsoir 1chticanon,
Qu'appelles-tu "pleins de fichier", car, d'après mes tests, il ouvre dans le répertoire où se trouve le fichier Excel, et je n'y ait placé qu'un unique fichier image.
Qu'appelles-tu "pleins de fichier", car, d'après mes tests, il ouvre dans le répertoire où se trouve le fichier Excel, et je n'y ait placé qu'un unique fichier image.
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
4 déc. 2012 à 23:34
4 déc. 2012 à 23:34
Bonsoir Heliotte et merci de t'intéresser à mon problème :
Moi quand j'execute la macro, cela ouvre le répertoire "mes documents", je suis donc obligé d'aller chercher le dossier voulu qu'on pourrait nommer "images fenêtres" par exemple parmis tous les dossiers.
Moi je voudrais que la macro ouvre directement le dossier ciblé "images fenêtres" et qu'on aperçoive toutes les images. Il n' y aurait plus qu'à cliquer sur la bonne image pour qu'elle soit automatiquement insérée dans la cellule active de la feuille excel.
Moi quand j'execute la macro, cela ouvre le répertoire "mes documents", je suis donc obligé d'aller chercher le dossier voulu qu'on pourrait nommer "images fenêtres" par exemple parmis tous les dossiers.
Moi je voudrais que la macro ouvre directement le dossier ciblé "images fenêtres" et qu'on aperçoive toutes les images. Il n' y aurait plus qu'à cliquer sur la bonne image pour qu'elle soit automatiquement insérée dans la cellule active de la feuille excel.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 5/12/2012 à 09:22
Modifié par Heliotte le 5/12/2012 à 09:22
Je ne sait pas avec ta version d'Excel, mais avec la version 2003 d'Excel, c'est impossible de demande à "GetOpenFilename" de changer de répertoire.
Il te reste donc deux solutions, soit en changeant le répertoire courant, soit en utilisant l'API correspondante.
Changer le répertoire courant:
C'est le plus simple. Évidemment, si tu d'autres choses à faire dans le répertoire de départ, il te faut garder le chemin de départ dans une variable, excepté si c'est le chemin de l'application.
Penses à mettre résolu, merci.
Il te reste donc deux solutions, soit en changeant le répertoire courant, soit en utilisant l'API correspondante.
Changer le répertoire courant:
ChDrive "I" ChDir "I:\Tata\Toto\images fenêtres\"
C'est le plus simple. Évidemment, si tu d'autres choses à faire dans le répertoire de départ, il te faut garder le chemin de départ dans une variable, excepté si c'est le chemin de l'application.
Penses à mettre résolu, merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
5 déc. 2012 à 12:28
5 déc. 2012 à 12:28
Bonjour et merci pour ta réponse rapide,
mais comme je maitrise le vb comme le russe, je voulais savoir ou je place ces ligne dans le code que j'ai déjà ?
Désolé de poser des question basiques, mais je ne suis qu'un menuisier qui essaie de toucher au monde obscure de la programmation ...
mais comme je maitrise le vb comme le russe, je voulais savoir ou je place ces ligne dans le code que j'ai déjà ?
Désolé de poser des question basiques, mais je ne suis qu'un menuisier qui essaie de toucher au monde obscure de la programmation ...
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
5 déc. 2012 à 15:34
5 déc. 2012 à 15:34
Y'a pas d'malaise Blaise.
Le milieu de la programmation n'est pas obscure du tout, c'est seulement ce que certains veulent nous faire croire .. hi hi.
Q. - Trêve de plaisanterie, à ton avis, où pourrais-t-on le placer ..
R. - Heu .. peut-être juste avant de faire appel à la boîte de dialogue qui a besoin d'un chemin .. tel que celui-ci, pardis.
Examen réussi !
Le milieu de la programmation n'est pas obscure du tout, c'est seulement ce que certains veulent nous faire croire .. hi hi.
Q. - Trêve de plaisanterie, à ton avis, où pourrais-t-on le placer ..
R. - Heu .. peut-être juste avant de faire appel à la boîte de dialogue qui a besoin d'un chemin .. tel que celui-ci, pardis.
Examen réussi !
1chticanon
Messages postés
6
Date d'inscription
lundi 3 décembre 2012
Statut
Membre
Dernière intervention
5 décembre 2012
5 déc. 2012 à 20:10
5 déc. 2012 à 20:10
Merci Heliotte !
J'ai collé tes 2 lignes avant l'application getopenfilename, et ... Ca marche !
J'ai encore pleins d'autres questions mais je le ferai plus tard je vais fermer le sujet et le mettre en "résolu".
Juste comme ça , faut combien de temps pour maitriser VB parce que j'ai pris VB6 pour les nuls et même cet ouvrage me parait complexe. J'en ai marre de faire du copier -coller de morceaux de code, c'est frustrant !
J'ai collé tes 2 lignes avant l'application getopenfilename, et ... Ca marche !
J'ai encore pleins d'autres questions mais je le ferai plus tard je vais fermer le sujet et le mettre en "résolu".
Juste comme ça , faut combien de temps pour maitriser VB parce que j'ai pris VB6 pour les nuls et même cet ouvrage me parait complexe. J'en ai marre de faire du copier -coller de morceaux de code, c'est frustrant !
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
6 déc. 2012 à 06:54
6 déc. 2012 à 06:54
Bonjour 1chticanon,
Visual Basic est très facile à appliquer, tu le verras par toi-même.
Une astuce par-ci par-là, je code, je recommence .. très vite.
Cela dépend surtout du temps que tu peux y consacrer.
Le principal : toujours se fier à la documentation du logiciel, pour ne pas s'embrouiller.
Tu peux toujours voir d'autres tutos pour une meilleures compréhension, mais c'est préférable de revenir aux origines .. toujours.
Bonne programmation et @ très bientôt ...
Visual Basic est très facile à appliquer, tu le verras par toi-même.
Une astuce par-ci par-là, je code, je recommence .. très vite.
Cela dépend surtout du temps que tu peux y consacrer.
Le principal : toujours se fier à la documentation du logiciel, pour ne pas s'embrouiller.
Tu peux toujours voir d'autres tutos pour une meilleures compréhension, mais c'est préférable de revenir aux origines .. toujours.
Bonne programmation et @ très bientôt ...