Coller en VBA dans une cellule

BAT

XLDnaute Occasionnel
Bonjour à tous le forum,

Je cherche le code VBA qui me permet de coller dans une cellule bien précise du texte. Lorsque j'enregistre l'opération => double clique pour entrer dans la cellule + coller, le résulat est le suivant :
Code:
    Range("D34").Select
    ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:= _
        False

Mais ce code n'est pas bon car, si je copie du texte avec des retours à la ligne par exmeple, Excel va copier les données dans plusieures cellules.

Essayer par exemple de copier ce post dans une cellule cela ne marche pas. Les données sont copiées dans plusieurs cellule. Par contre si je fait un double clique sur la cellule (ou F2) et que je colle, là ca marche. Tout tiens dans la cellule. Mais l'enregistreur enregistre toujours le m^me code!!!

Merci pour votre aide.
 

jeromegmc

XLDnaute Occasionnel
Re : Coller en VBA dans une cellule

Salut,


Si tu utilises du code VBA, je te propose un manière plus "élégante" de faire un copier/coller

si tu as un cellule de sélectionnée et que tu veux récupérer la valeur de la cellule A1 tu peux essayer ça:

Selection = Range("A1").Value

Cela te permet d'affecter la valeur qui se trouve dans la cellule A1 à la cellule sélectionée. La mise en forme est conserver, par exemple le retour à la ligne.


Dis moi si cela te convient, sinon expliques un peu à quoi sert ton copier/coller.


A+
 

jeromegmc

XLDnaute Occasionnel
Re : Coller en VBA dans une cellule

Resalut,


ok c'est plus clair, je veins d'essayer de trouver une solution à ton problème, mais je ne trouve pas comment coller le tout dans une cellule. Cependant je te propose ce code:


Private Sub fusionner_texte()

'Fusionne le texte de plusieurs cellules dans une seul cellule, en séparant chaque contenue
'de cellule par un retour à la ligne (chr(10)

Dim i As Integer, Cell1, Cellule As Range, MyCells As Range

Set MyCells = Selection
Cell1 = ActiveCell.Address
i = 1

For Each Cellule In MyCells
If i > 1 Then
Range(Cell1).Value = Range(Cell1).Value & Chr(10) & Cellule.Value
Cellule.ClearContents
End If
i = i + 1
Next Cellule

Range(Cell1).Select

End Sub


Ca ne répond pas exactement à ton problème mais ça peut peut être t'aider.


A+
 

BAT

XLDnaute Occasionnel
Re : Coller en VBA dans une cellule

Re jeromegmc,

Pas tout à fait ce que je souhaite mais très interressant. Je pourrai essayer de l'adapter à mon cas mais ce qui me gêne c'est qu'il faudrait rajouter un bout de code car le principe serai que :
- la macro colle le texte copier par exemple en feuille 1, cellule A1
- En fonction de ce qui est collé, il faudrait un code macro (que je ne sais pas faire :eek:) qui sélectionne les cellule les cellule de A1 jusqu'à Ax, X étant la dernière cellule vide de la colonne A1 !
- Ensuite j'ajoute le code que tu m'a créer tout à l'heure !

C'est un dérivé de ce que je souaite faire mais bon, ça peux coller :D (jeux de mot bidon mais bon...)

Merci par avance et merci déjà d'avoir essayé !!!
 

jeromegmc

XLDnaute Occasionnel
Re : Coller en VBA dans une cellule

Salut,

Une réponse rapide pour aujourd'hui et je regarderai lundi si j'ai le temps.


Pour sélectionner de la cellule A1 jusqu'a une cellule Ax en s'arrêtant à la 1ère cellule vide rencontrée, voici le code:

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select


A+
 

fred65200

XLDnaute Impliqué
Re : Coller en VBA dans une cellule

essaie de remplacer les chr(10) par des vblf

[d1] = "Salut" & Chr(10) & "ceci est" & Chr(10) & "un test"

maVar = [d1]
maVar = Replace(maVar, Chr(10), vbLf)
[d4] = maVar

Pour la dernière cellule, tu peux aussi utiliser

Derli = columns(1).find ("*",,,,,xlprevious).row
range("A1:A" & derli).copy range("C1:C" & derli)
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 344
Membres
103 193
dernier inscrit
tedelio