[Catégorie modifiée .Net -> VBA] Copier une cellule sélectionnée

Signaler
Messages postés
3
Date d'inscription
jeudi 28 juin 2012
Statut
Membre
Dernière intervention
30 juin 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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")

w.Sheets("feuil1").Range("C2").Copy

w2.Worksheets("feuil1").Range("A1").PasteSpecial xlPasteAll


End Sub


J'espère avoir être clair et vous remercie d'avance.

8 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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)
Messages postés
3
Date d'inscription
jeudi 28 juin 2012
Statut
Membre
Dernière intervention
30 juin 2012

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à.

Merci bcp, c'est passionnant !!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
"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>
Messages postés
3
Date d'inscription
jeudi 28 juin 2012
Statut
Membre
Dernière intervention
30 juin 2012

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")

Un grand merci pour votre participation. : )
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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