[Catégorie modifiée .Net -> VBA] Copier une cellule sélectionnée
lowler
Messages postés3Date d'inscriptionjeudi 28 juin 2012StatutMembreDernière intervention30 juin 2012
-
28 juin 2012 à 23:30
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
30 juin 2012 à 16:59
Bonjour à tous,
Voilà je suis débutant, voir tréééés novice :)
Voici donc ma question : je souhaite copier une cellule sélectionnée d'un classeur A pour la coller dans une cellule précise d'un classeur B.
Ex : je copie la cellule A1 (car je la sélectionne, j'aurais pu sélectionner n'importe quelle autre cellule) du classeur A pour la coller dans la cellule A1 (toujours la même) du classeur B.
Voici mon code, il marche mais comme vous le constater je copie toujours la cellule C2 et non pas celle que je sélectionne :
Sub Macro1()
Dim w As Workbook, w2 As Workbook
Set w = GetObject("C:\Users\operateur\Desktop\horloge.xls")
Set w2 = GetObject("C:\Users\operateur\Desktop\ClasseurB.xls")
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 juin 2012 à 01:44
Salut
Tu fais du VBA, pas du VB.Net (catégorie)
Au lieu de
w.Sheets("feuil1").Range("C2").Copy
utilise
w.Application.Selection
(ou Selection.Copy - à tester)
Pas la peine de désigner la feuille puisque la sélection est forcément sur la feuille visible, du moins, la dernière affichée.
Exemple plus propre que le Copy/Paste :
w2.Worksheets("feuil1").Range("A1") = w.Application.Selection
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
lowler
Messages postés3Date d'inscriptionjeudi 28 juin 2012StatutMembreDernière intervention30 juin 2012 29 juin 2012 à 02:13
Super, merci pour ton infos jack.
Oui effectivement, je me suis trompé de catégorie, je m'en excuse. Et effectivement, pas la peine de désigner la feuille.
Une autre petite question. Je peut copier/coller une cellule d'un classeur à l'autre, nikel. Mais est-il possible par une macro de copier une cellule sélectionné vers un champ de saisie manuelle d'un logiciel. Je m'explique j'ai un logiciel de gestion clientèle. Et à chaque fois je saisie manuellement le nom d'un client dans un champ pour accès au dossier. J'ai une liste au format excel, est-il donc possible de sélectionner la cellule qui m’intéresse et qu'elle se copie dans ce champ. Je pense que j'en demande bcp là.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 juin 2012 à 07:38
Bonjour,
Mais est-il possible par une macro de copier une cellule sélectionné vers un champ de saisie manuelle d'un logiciel
La réponse dépend de celle que tu es seul à apporter à cette question :
Qu'est cet autre "logiciel" ? supporte-t-il l'automation ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 juin 2012 à 07:41
Car :
- si oui ===>> l'utiliser tout simplement
- si non ===>> tu vas faire une usine à gaz
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 juin 2012 à 07:45
Excel supporte par contre l'automation et l'inverse est donc possible depuis ton autre "logiciel", mais à la seule condition que tu en sois le créateur et/ou que tu en possèdes le code-source, qu'il soit développé en un langage de Microsoft permettant d'appeler une appli supportant l'automation, et que tu sois donc en mesure de le modifier pour, depuis LUI, appeler et te servir de Excel en automation.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 juin 2012 à 17:09
"Mais est-il possible par une macro de copier une cellule sélectionné vers un champ de saisie manuelle d'un logiciel"
Oui, mais ce n'est pas simple.
Il te faut identifier la fenêtre de ton logiciel et en trouver le "handle" (chiffre d'identification unique dans la session windows)
On peut le trouver grace aux API comme GetWindowText.
Une fois obtenu, il faudra parcourir tous les objets lui appartenant et retrouver le handle de la zone de texte cible.
Là aussi, les API avec GetWindow pour retrouver les "Child" de la fenêtre.
Alors enfin, tu pourras utiliser l'API SendMessage pour y envoyer ton texte.
Pas évident si tu es débutant.
Aide sur les API dans <ce logiciel>
lowler
Messages postés3Date d'inscriptionjeudi 28 juin 2012StatutMembreDernière intervention30 juin 2012 30 juin 2012 à 16:26
Re,
Merci pour vos réponses.
Jack : le copier/coller d'une cellule d'un classeur à l'autre fonctionne parfaitement sur mes 2 classeurs grâce à ton code. Néanmoins, j'ai fais 2 autres classeurs et là, lorsque je réutilise le même code il me copie bien la cellule d'un classeur A dans la cellule du classeur B, mais çà me copie uniquement l'arrière plan en couleur de la dite cellule est pas ce qui est noté dedans !! J'espère être assez clair.
Ucfoutu : Oui le logiciel utilise l'automation (je me suis renseigné sur internet, j'ai pas pigé grand chose lol). Pour mieux t'expliquer, c'est un logiciel qu'on lance par extra! (je me suis renseigné aussi apparemment c'est un émulateur c'est bien çà ?). Le logiciel ce lance donc, et il y a une ligne nommé "nom du client" et là à coté de cette ligne il y a un champ où il faut saisir le nom, j'aimerai donc par excel copié le nom de la cellule sélectionné dans le champ du logiciel. Je vois peut être un peu grand au vu de mes connaissances. voici le début de mon code :
Dim System As Object
Set System = CreateObject("EXTRA.System")
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 30 juin 2012 à 16:59
si le logiciel utilise l'automation Windows, ce sera la connaissance de ses ob jets et de son langage de développement, qu'il te faudra connaître, pour le "piloter" depuis VBA/Excel.
Et je crains alors que ce n'est pas ici, que tu pourras être aidé, mais sur un forum dédié à ce logiciel. !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ