Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Copier-coller une cellule, en rajoutant un terme dans la nouvelle cellule

BPM

XLDnaute Nouveau
Bonjour,

Je suis débutante en code VBA raison pour laquelle je sollicite votre aide.

J’aimerais écrire un code qui arrive à copier-coller la cellule C2 de la feuille 1, dans la cellule C1 de la feuille 2 et j’aimerais qu’après avoir collé que dans la même cellule je puisse rajouter le terme « IND » dans la cellule C1 feuille 2 et tout ça en code VBA.

Le contenu de la cellule C2 de la feuille 1, est amené à changer et je voudrais que le terme « IND » reste toujours peu importe la lettre qui viendra s’ajouter lors du copier-coller dans la cellule C1 feuille 2.

Je joins un petit fichier Excel exemple juste pour mieux représenter, car le fichier original est un gros document confidentiel.

Voici le code que j’ai essayé avec l’enregistreur de macro :

Sub exemple ()

' Copier-coller avec "IND"

Range("C2").Select

Selection.Copy

Sheets("Feuil2").Select

Range("C1").Select

ActiveSheet.Paste

Range("C1").Select

Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = "IND A"

Range("C2").Select

End Sub

Le problème pour plus de précision vient de cette partie : ActiveCell.FormulaR1C1 = "IND A"

Car comme je l’ai précisé plus haut la lettre A peut changer en B,C,D etc… alors je ne veux pas le code retienne la lettre A mais plutôt que le contenu de la cellule donc ici la cellule C2.

Je vous remercie d’avance pour votre aide.
 

Pièces jointes

  • classeur_test.xlsm
    12.5 KB · Affichages: 12
Solution
Bonjour BPM et bienvenue sur le Forum

Voici une macro qui correspond a ta demande :
VB:
Sub exemple()
' Copier-coller avec "IND"
    Sheets("Feuil2").Range("C1") = "IND " & Range("C2")
End Sub

Le mieux, serait cependant de faire une macro evenementielle, c'est a dire quelle se declenche lorsque la veleur de C2 change dans Feuil1. Pour cela, il te faut copier la macro ci-dessous dans le code de la Feuil1 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect([C2], Target) Is Nothing Then
        Sheets("Feuil2").Range("C1") = "IND " & Range("C2")
    End If
End Sub

Voir le fichier joint

Fred0o

XLDnaute Barbatruc
Bonjour BPM et bienvenue sur le Forum

Voici une macro qui correspond a ta demande :
VB:
Sub exemple()
' Copier-coller avec "IND"
    Sheets("Feuil2").Range("C1") = "IND " & Range("C2")
End Sub

Le mieux, serait cependant de faire une macro evenementielle, c'est a dire quelle se declenche lorsque la veleur de C2 change dans Feuil1. Pour cela, il te faut copier la macro ci-dessous dans le code de la Feuil1 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect([C2], Target) Is Nothing Then
        Sheets("Feuil2").Range("C1") = "IND " & Range("C2")
    End If
End Sub

Voir le fichier joint
 

Pièces jointes

  • classeur_test_V1.xlsm
    20.2 KB · Affichages: 5
Réactions: BPM

BPM

XLDnaute Nouveau
Je vous remercie pour votre aide, cela résout très bien mon problème.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…