Microsoft 365 Réaliser un coupez/coller en Macro en effectuant une combinaison de touches

  • Initiateur de la discussion Initiateur de la discussion Gabca
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gabca

XLDnaute Nouveau
Bonjour a tous,

Je suis débutant en Excel et tout ce que j'ai appris je l'es appris sur le tas,

Je voudrais crée une macro qui fait un couper/coller mais seulement des valeurs, voila le code qui en est sortie :

VB:
Sub Coupez_Coller()
    
    If Etat = False Then
        Selection.Copy
        Etat = True
        Set Select_CC = Selection
        Set Select_T = Selection
    Else
        Selection.PasteSpecial Paste:=xlPasteValues
        Select_CC.SpecialCells(xlCellTypeConstants, 1).ClearContents
        Etat = False
        End If
End Sub

La Macro marche sans soucis, mais pas dans un cas : si je coupe et colle sur une partie de ma sélection initiale, Elle se retrouve en partie effacer :/

Donc je le demandais si il y avait une solution "simple" a mon problème, autre que copier ma sélection sur une feuille et venir la récupéré après ...

Merci d'avance !

Gabriel.
 
Solution
Une proposition où j’enchaîne la sélection de la destination dans la macro :
VB:
Sub couperColler()
    Dim datas, c As Range
    datas = Selection.Value
    On Error Resume Next
    Set c = Application.InputBox(Selection.Address & " copié" & vbLf & "Cellule haut-gauche de destination", Type:=8)
    On Error GoTo 0
    If Not c Is Nothing Then
        Selection.ClearContents
        c.Resize(UBound(datas, 1), UBound(datas, 2)) = datas
    End If
End Sub
Regarde si ça te va
eric
Une proposition où j’enchaîne la sélection de la destination dans la macro :
VB:
Sub couperColler()
    Dim datas, c As Range
    datas = Selection.Value
    On Error Resume Next
    Set c = Application.InputBox(Selection.Address & " copié" & vbLf & "Cellule haut-gauche de destination", Type:=8)
    On Error GoTo 0
    If Not c Is Nothing Then
        Selection.ClearContents
        c.Resize(UBound(datas, 1), UBound(datas, 2)) = datas
    End If
End Sub
Regarde si ça te va
eric
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour