XL 2010 Sélection cellules non-adjacentes

Christophe-

XLDnaute Nouveau
Bonjour,

Je me permets de solliciter votre aide pour résoudre le problème suivant :

Dans mon tableau Excel, j'ai une colonne avec des adresses mails. Je souhaite sélectionner certaines de ces adresses mail pour les copier/coller ensuite dans ma boite mail. Mais quand je fais la sélection avec Ctrl et que je copie/colle, je me retrouve avec toutes les adresses mail choisies mais aussi toutes les autres qui sont "intercalées".
Je précise aussi que si je copie/colle cette sélection de cellules ailleurs que dans ma boite mails (par exemple dans un .doc) c'est le même problème.

Par avance merci pour votre aide.
Christophe
 
Solution
Bonjour Christophe-,

Sur votre fichier Excel, après avoir sélectionné les cellules, ne les copiez pas mais exécutez cette macro :
VB:
Sub Copier_dans_presse_papiers()
Dim c As Range, x$
For Each c In Selection
    x = x & vbLf & c
Next
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") ' DataObject en late binding
    .SetText Mid(x, 2)
    .PutInClipboard
End With
MsgBox "Les données sont dans le presse-papiers." & vbLf & "Touches Ctrl+V pour les coller où vous voulez..."
End Sub
Bien entendu la MsgBox n'est pas indispensable.

Seuls les textes sont copiés, pas les formats.

A+

Christophe-

XLDnaute Nouveau
Bon, finalement j'ai trouvé une solution un peu "bricolage" : une fois copier la sélection des cellules qui m'intéressent, je les colle dans le doc Excel (là j'ai uniquement les cellules voulues sans les "intercalées") puis, ensuite, je copie/colle cette sélection dans ma boite mail.
Mais il existe peut-être une solution sans passer par cette étape intermédiaire.

Christophe
 

job75

XLDnaute Barbatruc
Bonjour Christophe-,

Sur votre fichier Excel, après avoir sélectionné les cellules, ne les copiez pas mais exécutez cette macro :
VB:
Sub Copier_dans_presse_papiers()
Dim c As Range, x$
For Each c In Selection
    x = x & vbLf & c
Next
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") ' DataObject en late binding
    .SetText Mid(x, 2)
    .PutInClipboard
End With
MsgBox "Les données sont dans le presse-papiers." & vbLf & "Touches Ctrl+V pour les coller où vous voulez..."
End Sub
Bien entendu la MsgBox n'est pas indispensable.

Seuls les textes sont copiés, pas les formats.

A+
 

Christophe-

XLDnaute Nouveau
Bonjour Job75
Un grand merci pour votre aide. Je suis un débutant sur Excel et donc je ne connaissais pas les macros.
Grace à vous je m'y suis intéressé et votre solution marche parfaitement ! Problème résolu donc.
Bonne soirée à vous.
 

Discussions similaires

Réponses
1
Affichages
105
Compte Supprimé 979
C
Réponses
5
Affichages
196