• Initiateur de la discussion Initiateur de la discussion cromate
  • 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 !

C

cromate

Guest
bonjour,

je souhaite pouvoir copier en cliquant sur une cellule qu'elle se copie 2 colonnes plus loin sur la même ligne. J'ai trouvé un exemple qui n'est pas loin de mon souhait, mais je suis bloquée.

merci d'avance et bonne journée
 

Pièces jointes

Re : copie simple en vba

Bonjour, cromate, le Forum,

Peut-être ainsi :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Count = 1 And Target.Row > 5 Then
Target.Offset(, 2) = Target
End If
End Sub

A bientôt 🙂

P. S. : Bonjour, camarchepas 😀
 
Dernière édition:
Re : copie simple en vba

Bonjour Cromate,

Comme ceci peut être :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = ActiveCell
If Target.Column <> 2 Or Target.Value = "" Then Exit Sub
 Target.Offset(0, 2) = Target.Value
End Sub

@ Double Zéro bonjour , le temps de lever la tête et hop trop tard , tu était déjà passé , la solution est presque du copié coller .... aurait -on eu les mêmes professeurs , lol

Un plus pour toi , tu sécurise la prise en compte de la première ligne effective ....
 
Dernière édition:
Re : copie simple en vba

Bonjour cromate, hello 00 🙂 camarchepas 🙂

(...) mais je suis bloquée.

Votre profil indique un homme ?

Cette macro permet la sélection d'une plage et même de plusieurs plages (touche Ctrl enfoncée) :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("B6:B" & Rows.Count))
If r Is Nothing Then Exit Sub
For Each r In r.Areas
  r.Columns(3) = r.Value
Next
End Sub
A+
 
Re : copie simple en vba

Re,

Si l'on ne veut pas copier les cellules vides, le plus simple est de les analyser une par une :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, Range("B6:B" & Rows.Count), Me.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r
  If r <> "" Then r(1, 3) = r
Next
End Sub
A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
336
Réponses
7
Affichages
309
Réponses
1
Affichages
270
Retour