Forcer le copier-coller à l'intérieur d'une cellule

Bonsoir,

Sauriez-vous me dire s'il est possible de forcer le copier-coller d'un contenu, à l'intérieur d'une cellule par VBA.

C'est à dire qu'il faut que le curseur de la souris soit à l'intérieur de la cellule (en double-cliquant sur celle-ci lors d'une action manuelle) et non pas simplement positionné sur la case correspondant à la cellule.

Merci pour votre aide.

NB : Voir images dans la trame des échanges ci-après.

La formule suivante pourrait être complétée :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

On Error Resume Next 'sécurité

With Application

If .CutCopyMode Then

.EnableEvents = False

.Calculation = xlManual

.Undo

Selection.PasteSpecial xlPasteValues

.OnUndo "", ""

.OnRepeat "", ""

.Calculation = xlAutomatic

.EnableEvents = True

End If

End With

End Sub

Bonsoir,

Drôle d'idée ! On n'a en principe pas besoin de forcer une cellule, sauf si elle est protégée (la feuille est protégée) auquel cas il faut déprotéger (mais on n'a pas besoin non plus de copier-coller... !).

Où veux-tu en venir ?

Je précise.

J'ai des collègues qui font un copier-coller de n'importe quoi, dans un agenda.

Il y a une macro qui agence le contenu du copier-collé sur la ligne de destination, en taille, format et couleur de police.

Le problème est le suivant;

Ils oublient systématiquement de rentrer dans la cellule puisque toutes les données doivent apparaître dans une cellule qui se modifie en conséquence. J'ai beau leur rappeler, ça ne rentre pas. Je cherche donc une parade.

Suivant le contenu qu'ils copient, il arrive que les données soient copiées par dessus plusieurs lignes dans la mesure, où il font un copier-coller en surface, et non à l'intérieure de la ligne en question.

Désolé mais je ne saisis pas la situation que tu décris ? Il n'y a pas plusieurs niveaux dans une cellule...

Ce que je décris est très simple.

Je l'ai certainement mal formulé.


En image ce sera plus clair.

aaa dddddd

Si je copie une cellule, j'aurais une cellule au collage.

Si je copie plusieurs cellules, au collage j'aurais autant de cellules que copiées.

Si je copie, une ou plusieurs peu importe, et que je double-clique dans une cellule, le double-clic vide le presse-papier, et je ne colle plus rien. Ne me reste plus qu'à copier à nouveau !

Dis comment tu obtiens ce résultat, c'est intéressant !

Quel résultat?

Le copier-coller ne concerne pas la copie de cellules excel sinon des extraits de mails, de documents word ou de pages web...

Bonjour,

Je n'avais pas connecté qu'il s'agissait de copie extérieure à Excel...

Essaie ce code sur un échantillon de données collées...

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dta, i%, lng%
    If Target.Count > 1 And Target.Cells(1, 1).Value <> "" Then
        For i = 1 To Target.Cells.Count
            lng = IIf(Len(Target.Cells(i).Value) > lng, Len(Target.Cells(i).Value), lng)
            dta = dta & Chr(10) & Target.Cells(i).Value
        Next i
        dta = Replace(dta, Chr(10), "", 1, 1)
        With Application
            .EnableEvents = False
            .Undo
            Target.Cells(1, 1).WrapText = True
            Target.Cells(1, 1).ColumnWidth = lng
            Target.Cells(1, 1) = dta
            .EnableEvents = True
        End With
    End If
End Sub

Cordialement.

Cette fameuse précision a donc rendu mon problème compréhensible.

Merci beaucoup d'avoir médité là-dessus; je vérifie ton code demain dans la journée.

Bonne nuit

Cela n'a pas fonctionné. Merci tout de même.

Avec quel type de texte ?

Pour moi ça fonctionnait bien avec un bout de message me signalant tes réponses !

Je vais vérifier à nouveau.

Où as-tu mis la macro ? C'est une évènementielle.

Thisworkbook. Serait-ce à insérer dans la feuille?

C'est une procédure Change de feuille que j'ai passée, à mettre dans le module de la feuille où l'on colle.

Elle peut également fonctionner telle que rédigée dans ThisWorbook mais pas avec la même déclaration de procédure :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Cordialement.

Avec un peu de retard.

Merci beaucoup, cela fonctionne parfaitement.

Bonne soirée.

Rechercher des sujets similaires à "forcer copier coller interieur"