Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier coller 2 cellule en 1

Martialou

XLDnaute Nouveau
Bonsoir,

je me permet de vous demander s'il existe un moyen de "coller" une copie de 2 cellules dans 1 cellule ?

Je vous explique avec un morceau du code :

Code:
Sub Etat_OI()

'********************************************
'Ici il y a toute la macro de connection à l'autre logiciel
'********************************************

    Worksheets("Tableau B3").Rows(1).Copy
    'Effectue une copie de la sélection
    Selection.Copy

Sess0.Screen.SendKeys ("<Home>")
        Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys ("=2.1.5_")
        Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys ("<Enter>")
        Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.Paste
        Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys ("<Enter>")
        Sess0.Screen.WaitHostQuiet (g_HostSettleTime)

    Set MyScreen = Sess0.Screen
    Set MyArea = MyScreen.Area(4, 64, 4, 70)
    MyArea.Select
    Sess0.Screen.Copy
    System.TimeoutValue = OldSystemTimeout
    ActiveCell.Offset(0, 1).Select
    ActiveSheet.Paste

Donc, je sélectionne sur mon Tableau B3, une cellule "C25" par exemple, sur mon autre logiciel, je colle la donnée copier en "C25" et des infos s'affiche, je copie des données en ligne 4, colonne 64 à 70 (MyArea)
Je copie cette sélection, un petit temps de pose, et ensuite, je la colle dans mon tableau Excel sur la même ligne mais décalé d'une cellule à droite. Sauf que là, quand ça colle, le "ActiveSheet.Paste" prend 2 cellules au lieu d'une !

Exemple :
Je copie dans mon logiciel : Test 10 (Test <espace> 10)
Et je colle dans Excel : Test (saut de colonne) 10

Ce que je recherche, c'est de pouvoir coller dans la même cellule.
Merci de votre aide
 

fhoest

XLDnaute Accro
Re : Copier coller 2 cellule en 1

Bonjour,
plutôt que de copier directement il serait préférable de passer par une variable qui serait égale a une seule valeur texte que tu pourrait transposer dans une seule cellule.
exemple:
copie de logiciel=> mavariable ( dim as string) = "test <espace> 10"
cellule excel = mavariable.
voilà ce que je suggére.
A+
 

Dranreb

XLDnaute Barbatruc
Re : Copier coller 2 cellule en 1

Bonjour
si l'autre logiciel envoit sa bafouille dans le presse papier, ceci pourrait avoir son utilité :
VB:
Property Get PressePapier() As String
Dim DOb As New DataObject
DOb.GetFromClipboard: PressePapier = DOb.GetText
End Property
Property Let PressePapier(Z As String)
Dim DOb As New DataObject
DOb.SetText Z: DOb.PutInClipboard
End Property
À+
 

Martialou

XLDnaute Nouveau
Re : Copier coller 2 cellule en 1

Bonsoir, j'ai essayé de rajouter une variable comme tu m'as suggéré fhoest, mais j'ai du mal à la placer ..
J'ai essayé aussi le code de Dranreb, mais là, je sais même pas, ou, et comment l'insérer, ayant une connaissance de Vba et Excel médiocre, je vous remercie d'avance de votre aide.

Je vous envois le code complet, et si vous avez 5 min, me faire voir ou est ce qu'on met tout ça !


Donc avec cette macro, elle me recherche automatiquement le texte qui est situé sur la ligne 4, colonne 64 à 70
Set MyArea = MyScreen.Area(4, 64, 4, 70)
Le logiciel, fait une copie de cette zone, colle sur mon tableau Excel, et revient à la ligne du dessous pour relancer la macro, et s'arrête dès qu'il y a une cellule vide (Loop). Le seul hic dans tout ça, c'est que "coller", me prend 2 cellules en longueur, car le texte copier contient un espace entre les 2 mots ...

Merci beaucoup de votre aide !
 

Dranreb

XLDnaute Barbatruc
Re : Copier coller 2 cellule en 1

le code de Dranreb, mais là, je sais même pas, ou, et comment l'insérer
Mais dans un module ordinaire, tout simplement.
Après quoi PressePapier s'utilise un peu comme une variable String. Mais lorsqu'on y affecte une valeur celle ci est reproduite par un Ctrl+V dans une multitude d'environnements, dans lesquel Ctrl+C lui affecte une autre valeur qu'on peut ensuite y récupérer.

Dans la mesure où à priori une autre application qu'Excel ne copie pas des cellules Excel,
moi à votre place, après votre instruction Sess0.Screen.Copy je serais curieux de savoir ce que contient PressePapier !
Faites un MsgBox PressePapier
À+
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…