Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2723 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel - VBA - Copier du texte au double clic [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel - VBA - Copier du texte au double clic [résolu]

n°1572668
didieraucu​n
Posté le 09-06-2007 à 11:03:05  profilanswer
 

J'utilise une macro pour copier automatiquement au double clic du texte provenant d'un document word
http://img178.imageshack.us/img178/4343/clipboard1in9.jpg
 
Quand le texte sélectionné est copié, les cellules collées sont verticales alors que je les voudrais horizontale. Car les valeurs dans mes cellules B3 et B4 sont écrasées.  :(  
 
http://img510.imageshack.us/img510/7898/clipboard1dx4.jpg
 
http://img148.imageshack.us/img148/5632/clipboard1vr3.jpg
 
Pouvez m'aider à résoudre ce problème. Merci  :hello:


Message édité par didieraucun le 14-06-2007 à 21:48:40
mood
Publicité
Posté le 09-06-2007 à 11:03:05  profilanswer
 

n°1572673
ingenieurc​esi
Posté le 09-06-2007 à 11:38:27  profilanswer
 

bonjour,
 
est ce qu'un fichier word est un fichier sequentiel ?
à la place du fichier word tu peux utilise un .txt ? parce que si oui j'ai une solution

n°1572675
ingenieurc​esi
Posté le 09-06-2007 à 11:46:46  profilanswer
 

avec un .txt tu peux utiliser ce code
 
ligne = 3
Open "C:\tonfichier.doc" For Input As 1
For k = 1 To ligne Step 1
If EOF(1) Then GoTo NoMoreValueA
Line Input #1, ref
Worksheets("a" ).Cells(1, k).FormulaR1C1 = ref
Next
NoMoreValueA:
Close 1
End Sub
 
par contre ca mets le contenu entier de ta ligne
donc faut utiliser Mid
tu sais que ta première ligne sera tj de la forme Titre: bbbbb donc ce que tu veux recuperer commence au 8ieme caractere --> ref=trim(mid(ref,8,100))
 

n°1572778
tegu
Posté le 09-06-2007 à 18:04:34  profilanswer
 

Essaie la manipulation suivante (de mémoire) :
1/ sélectionne et copie tes cellules
2/ clic droit et choisis Collage spécial
3/ coche la case/l'option Transposition (dépend peut-être de la version Excel) puis valide
 
Si le résultat te convient, il suffit d'utiliser l'enregistreur de macro pour connaître le code correspondant et t'en inspirer.

n°1572939
didieraucu​n
Posté le 10-06-2007 à 20:31:05  profilanswer
 

ingenieurcesi a écrit :

avec un .txt tu peux utiliser ce code
 
ligne = 3
Open "C:\tonfichier.doc" For Input As 1
For k = 1 To ligne Step 1
If EOF(1) Then GoTo NoMoreValueA
Line Input #1, ref
Worksheets("a" ).Cells(1, k).FormulaR1C1 = ref
Next
NoMoreValueA:
Close 1
End Sub
 
par contre ca mets le contenu entier de ta ligne
donc faut utiliser Mid
tu sais que ta première ligne sera tj de la forme Titre: bbbbb donc ce que tu veux recuperer commence au 8ieme caractere --> ref=trim(mid(ref,8,100))


 
Merci mais je ne peux utiliser ce programme car les valeurs à copier peuvent être n'importe où dans le document.  :(  
La proposition de tegu ne marche pas. Le collage spécial ne propose pas de coller en transposé pour des valeurs venant de word.
Par contre si je pouvais copier ces valeurs dans une feuille cachée puis revenir dans ma cellule d'origine et les coller en transposé, alors cela devrait marcher :
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Range("C10:C12" ).Select  ; il faudrait qu'il copie ça dans une feuille caché
    ActiveSheet.Paste
Range("C10:C12" ).Select ; il selectionne de nouvreau les valeurs
    Selection.Copy ; il les copies dans sa petite mémoire
    Range("A1" ).Select ; la par contre il faudrait qu'il colle les valeurs à l'endroit où j'ai double cliqué
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub
 
.....

Message cité 1 fois
Message édité par didieraucun le 10-06-2007 à 20:38:50
n°1572941
didieraucu​n
Posté le 10-06-2007 à 20:38:25  profilanswer
 

.....  Je dois certainement me compliquer la tache  :??:  
Si quelqu'un pouvait me modifier ce code  ;)  :ange:


Message édité par didieraucun le 10-06-2007 à 20:39:11
n°1572955
ingenieurc​esi
Posté le 10-06-2007 à 21:15:34  profilanswer
 

didieraucun a écrit :

Merci mais je ne peux utiliser ce programme car les valeurs à copier peuvent être n'importe où dans le document.  :(  


 
b comment tu fais pour les recupere si tes données peuvent etre n'importe ou ?
 
EDIT:
tu peux mettre un ou plusieurs de tes fichiers .doc en temps qu'exemple. peut etre sur cjoint si tu c pas koi utiliser

Message cité 1 fois
Message édité par ingenieurcesi le 10-06-2007 à 21:17:54
n°1572988
didieraucu​n
Posté le 10-06-2007 à 23:56:15  profilanswer
 

ingenieurcesi a écrit :

b comment tu fais pour les recupere si tes données peuvent etre n'importe ou ?


Je vais dans le fichier WORD, je sélectionne mes valeurs, je fais copier et je vais dans excel pour utiliser mon double clic
en plus les noms des fichiers peuvent être à chaque fois différent  :pt1cable:

n°1573315
seniorpapo​u
Posté le 11-06-2007 à 16:24:29  profilanswer
 

Bonjour,
Comme d'habitude, à amélilorer:
Dim ddd As DataObject
 
Sub coco()
Set ddd = New DataObject
ddd.GetFromClipboard
z = ddd.GetText
u = Split(z, vbCrLf)
For i = 0 To UBound(u)
Selection.Offset(0, i) = u(i)
Next i
 
End Sub
Cordialement

n°1573511
didieraucu​n
Posté le 11-06-2007 à 23:37:50  profilanswer
 

:(  
http://img515.imageshack.us/img515/2538/clipboard1nf7.jpg

mood
Publicité
Posté le 11-06-2007 à 23:37:50  profilanswer
 

n°1573532
seniorpapo​u
Posté le 12-06-2007 à 07:07:06  profilanswer
 

Bonjour,
il te manque une référence , je vais chercher laquelle. Probable microsoft... dataobject..
@+
 
edit:
trouvé:
Microsoft Forms 2.0 Object library


Message édité par seniorpapou le 12-06-2007 à 07:23:37
n°1575186
didieraucu​n
Posté le 14-06-2007 à 21:47:47  profilanswer
 

Oui, ça marche maintenant  :)  
Merci beaucoup  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel - VBA - Copier du texte au double clic [résolu]

 

Sujets relatifs
Macro Excel : enregistrer feuille en PDF et envoi pièce jointeEcrire un entier sous la forme d'un double
[Résolu] /?page=contactRetourner variable js dans champs texte d'un formulaire
Résolu - Problème d'éxécution programme VB ExpressGraphique et Excel
[javascript][resolu] variable php dans javascript[résolu] Script pour XML et DTD
[Résolu] Afficher le temps qui s'écoule pendant un traitementcréation macro pour envoie fichier excel par mail
Plus de sujets relatifs à : Excel - VBA - Copier du texte au double clic [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR