copie simple en vba

cromate

XLDnaute Nouveau
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

  • exemple 1.xls
    39.5 KB · Affichages: 25
  • exemple 1.xls
    39.5 KB · Affichages: 30
  • exemple 1.xls
    39.5 KB · Affichages: 27

DoubleZero

XLDnaute Barbatruc
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 :D
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
312 514
Messages
2 089 219
Membres
104 065
dernier inscrit
il matador