Clic sur cellule colonne = recopie le contenu du clic sur une ligne

Bonjour,

Je cherche une procédure permettant, par simples "clic" dans une colonne (autant de "clics" que souhaités") aligner sur une ligne les choix ( le contenu de chaque "clic".

Mon niveau en VBA est autour du niveau "nul".

Je vous mets une petite description du sujet ci dessous.

Si certains avaient une solution ou un conseil je serais preneur.

D'avance merci.

1)Le contenu de la cellule sur laquelle s'est fait le "clic" est recopié sur la ligne une colonne 6 ( par exemple)

2) renouveler autant de fois que souhaité ce clic pour envoyer chaque fois le contenu de la cellule sur la ligne 1 mais sur la colonne suivante ( incrémentation de la colonne).

Nota: La mini procédure que j'ai écrite sur l'onglet ( visualiser le code) fonctionne mais écrit toujours sur la même cellule de la première ligne. ( impossible d'aligner les différents clics , les différents choix sur la première ligne.)

Question: Existerait-il une solution pour que chaque "clic" ( donc chaque choix) soit recopiés sur une même ligne ( sans écrasement).

Exemple: ci dessous la mini procédure que j'ai écrite sur l'onglet ( visualiser le code) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set Target = ActiveCell

Dim col As Integer

col = 6

Dim cpteur As Integer

cpteur = 0

'si le clic se fait dans la plage B1:B250 alors copier le contenu de la cellule sur la ligne 1 colonne 6 puis pour les autres Clic colonne 7, 8, 9 ...( aligner les choix)

If Not Application.Intersect(Target, Range("B1:B250")) Is Nothing Then

Cells(1, col) = Target.Value

col = col + 1

End If

End Sub

Bonjour Paul et bienvenu, bonjour le forum,

C'est pas très clair !... En tous cas moi je n'ai pas bien compris.

Je te propose une macro événementielle qui réagit au double-clic. Elle copie toutes les données de la colonne de la cellule double-cliquée et les colle dans la première ligne à partir de la colonne 6 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans une cellue de l'onglet
Dim DL As Integer 'déclare la variable DL (Dernières Ligne)
Dim DC As Integer 'déclare la variable DC (Dernières Colonne)

DL = Cells(Application.Rows.Count, Target.Column).End(xlUp).Row 'définit la dernière ligne éditée de la colonne de la cellulel double-cliquée
DC = IIf(Range("F1") = "", 6, Cells(1, Application.Columns.Count).End(xlToLeft).Column + 1) 'définit dernière colonne éitée DC de la ligne 1 (6 si F1 est vide, sinon la première cellule vide de la ligne 1)
Range(Cells(1, Target.Column), Cells(DL, Target.Column)).Copy Cells(1, DC) 'copy de les données de la colonne de la cellule double-cliquée et les colle dans la ligne 1 colonne DC
End Sub

Bonjour Thau Thème,

Merci pour la réponse.

J'ai tenté d'intégrer la macro mais je ne suis pas parvenu à la faire exécuter...

Je joins un fichier exemple pour essayer d'être moins confus dans la demande...

Cordialement

10motsclefs.xlsm (16.85 Ko)

Bonjour

Bonjour à tous

Un essai à tester.

19motsclefs-v1.xlsm (23.08 Ko)

Bye !

Bonsoir …

Ayant l’habitude d’utiliser autant que faire ce peut les tableaux ( de la classe LitObjects pour ceux dans une feuille avec des propriétés permetant de simplifier les choses), si la liste est intégrée dans un tableau nommé Tb, et qu’il faille éviter les doublons :

Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
     Dim C As Range
     If Not Application.Intersect(R, [Tb]) Is Nothing Then
          Set C = Cells(1, Columns.Count).End(xlToLeft)
          ‘pas de doublon sinon …  C(1, 2)=R suffira
       If Application.CountIf([E1].Resize(, C.Column), R) = 0 Then C(1, 2) = R 
    End If
    Cancel = 1
End Sub

Nota : je préfère changer l’évènement pour éviter d’être embêté quand il y a d’autres choses à faire (par exemple, changer, supprimer une valeur …)

GBM,

Merci pour le retour ; c'est parfaitement ce que je cherchais à faire sans y parvenir.

Je suis admiratif.

Je décrypterai la solution donnée pour bien la comprendre et être un peu moins nul.

Encore grand merci.

Ordonc,

Merci pour ce retour.

Cordialement.

Rechercher des sujets similaires à "clic colonne recopie contenu ligne"