Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Valen
  • 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 !

Valen

XLDnaute Nouveau
Bonjour,
Encore novice en VBA, je veux faire une Macro pour coller des valeurs copier précédement mais je me retrouve toujours avec une erreur de compil quand j'essaie d'utiliser un code pour détecter la cellule clickée, y'a t-il quelqu'un pour m'aider.

Merci 🙂

Sub Copier()
'
' Copier Macro
' Touche de raccourci du clavier: Ctrl+c
'
Range("B4:H4").Select
Selection.Copy
Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
MsgBox "Click on " & Target.Adress
End If
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)).Select
ActiveSheet.Paste

End Sub
 
Re : Erreur code

Bonsoir Valen,

Voici le code corrigé :
Code:
Sub Copier()
'
' Copier Macro
' Touche de raccourci du clavier: Ctrl+c
'
Range("B4:H4").Select
Selection.Copy
[COLOR="Blue"]End Sub[/COLOR]

[COLOR="blue"]Sub[/COLOR] Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
MsgBox "Click on " & Target.[COLOR="Blue"]Address[/COLOR]
End If

Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)).Select
[COLOR="Red"]' J'ai désactivé cette ligne car je ne sais pas ce que tu cherches à faire[/COLOR]
[COLOR="Red"]'ActiveSheet.Paste[/COLOR]

End Sub
 
Re : Erreur code

Bonsoir

Une réponse
Tu veux mélanger une macro normale avec une macro événementielle

Aussi tu avais une erreur avec Target.Address

Code:
Option Explicit

Sub Copier()
Dim Target As Range
'
' Copier Macro
' Touche de raccourci du clavier: Ctrl+c
'
  Set Target = Selection
  Range("B4:H4").Copy
  If Not Intersect(Target, Range("A:A")) Is Nothing Then
    MsgBox "Click on " & Target.Address
  End If
  Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)).Select
  ActiveSheet.Paste
  Application.CutCopyMode = False
End Sub

Pourquoi tu testes où est la cellule active ( Target = Selection = ActiveCell)si tu ne t'en sert pas après ?
Je ne comprends pas trop ta macro
 
Re : Erreur code

Bonsoir Valen, matthieu33, Banzai64

Une autre façon de faire.
Code à placer dans le module de la feuille concerné.
(Click droit sur l'onglet de la feuille puis visualiser le code)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then Range("B4:H4").Copy Target
End Sub

Bonne fin de soirée
 
Re : Erreur code

Bonjour matthieu33, Banzai64, bqtr,

Merci de vos réponses, j'ai tester rien ne marche.

Je me suis peut être mal expliquer, ce que je veux obtenir c'est:

Par une macro je veux copier les valeurs de B4:H4 à droite de la cellule que j'aurai clicker de la colonne A

Merci de votre collaboration.

Bonne Journée🙂
 
Re : Erreur code

bonjour Valen
Salut matthieu bqtr banzai

teste ceci
Code:
Sub Copier()
'
' Copier Macro
' Touche de raccourci du clavier: Ctrl+c
'
Dim adresse As String
adresse = Selection.Address
Range("B4:H4").Select
Selection.Copy
'Worksheet_SelectionChange(ByVal Target As Range)
'If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
'MsgBox "Click on " & Target.Adress
'End If
'Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)).Select
Range(adresse).Offset(0,1).Select
ActiveSheet.Paste
End Sub
 
Dernière édition:
Re : Erreur code

Bonjour

Alors essayes

A copier dans le code de la feuille


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Range("A:A")) Is Nothing Then
    Range("B4:H4").Copy Destination:=Target.Offset(0, 1)
  End If
End Sub

Bonjour pierrejean
 
Re : Erreur code

Bonjour tout le monde,

en reprenant le code que te propose bqtr et en ajoutant ce qui est en bleu, ça devrait répondre à ta demande:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then Range("B4:H4").Copy Target[B][COLOR="Blue"].Offset(0 , 1)[/COLOR][/B]
End Sub

Edit: salut Pierrejean, Banzai64, 3 réponses en 2mn, presque collision!!
 
Dernière édition:
- 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

Réponses
2
Affichages
345
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
447
Réponses
10
Affichages
655
Réponses
32
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…