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

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

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

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

Merci bcp, c'est passionnant !!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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>
0
lowler Messages postés 3 Date d'inscription jeudi 28 juin 2012 Statut Membre Dernière intervention 30 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")

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