Coller automatiquement une valeur d'une cellule

Bonjour,

Je cherche à copier une cellule quelconque (dans une zone déterminée) pour la coller dans un emplacement précis qui évolue....

Le tableur joint explique cela plus clairement (je l'espère du moins)

J'ai créé une macro mais qui est à modifier ....

En espérant que c'est réalisable.

Bonjour,

copier la macro suivante sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("M13:S22"))
If Not isect Is Nothing Then Range("D" & Cells(Rows.Count, "D").End(xlUp).Row + 1) = Target.Value
End Sub

Bonjour,

A mettre dans le module de la feuille, à chaque sélection de cellule dans la plage M13:S22, la valeur sera entrée à la suite des autres de la gauche vers la droite et de haut en bas :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Cel As Range

    If Intersect(Target, Range("M13:S22")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub

    For Each Cel In Range("D5:F30")

        If Cel.Value = "" Then Cel.Value = Target.Value: Exit For

    Next Cel

End Sub

Bonjour,

copier la macro suivante sur la page code de la feuille,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("M13:S22"))
If Not isect Is Nothing Then Range("D" & Cells(Rows.Count, "D").End(xlUp).Row + 1) = Target.Value
End Sub

Merci pour ta proposition que je viens d'essayer.... malheureusement il y a un souci car cela ne fonctionne pas.

Bonjour,

A mettre dans le module de la feuille, à chaque sélection de cellule dans la plage M13:S22, la valeur sera entrée à la suite des autres de la gauche vers la droite et de haut en bas :

...

Re,

C'est extraordinaire ce que l'on peut faire avec Excel :

Cela va même au-delà de mes espérances.

Il y a juste un tout petit truc qui consisterait à "autoriser" le collage du même dernier nombre sur une ligne en début d'une nouvelle ligne.

Ce tableur va recueillir les votes d'un club photo = chaque ligne les votes d'un adhérent (donc pas de doublon) mais sur la ligne suivante, on peut retrouver la photo citée en dernier...

Je joins le tableur qui montre bien cela

Il y a juste un tout petit truc qui consisterait à "autoriser" le collage du même dernier nombre sur une ligne en début d'une nouvelle ligne.

Je ne comprend pas trop ce que tu veux

Tu ne veux pas que sur une même ligne deux valeurs identiques puissent s'y trouver mais qu'elles puissent se suivre si sur deux lignes différentes ?

Dans le cas où ces deux valeurs se trouvent sur la même ligne peuvent elles coexister si une valeur différente les sépare ?

Désolé si je n'ai pas été clair.

- Tu ne veux pas que sur une même ligne deux valeurs identiques puissent s'y trouver mais qu'elles puissent se suivre si sur deux lignes différentes ?

En pratique, cela ne devrait pas arriver puisqu'un adhérent vote pour des photos différentes et qu'il y a une ligne par adhérent mais c'est un verrou ou alerte possible

- Dans le cas où ces deux valeurs se trouvent sur la même ligne peuvent elles coexister si une valeur différente les sépare ?

Ce qui correspond à la sécurisation d'un ligne

==> mon propos à partir d'un exemple concret.... la dernière photo choisie par un adhérent est la 22

et la première photo de l'adhérent suivant est la 22

En l'état cela bloque et c'est dommage.

En l'état cela bloque et c'est dommage

ceci est dû au fait que la cellule reste sélectionnée donc, si chaque adhérent doit noté 3 photos, il suffit une fois arrivé en bout de ligne de sélectionner une cellule en dehors de la grille ce qui fait que quand l'adhérent suivant effectue sont choix, il va devoir obligatoirement sélectionner dans la grille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Cel As Range
    Dim I As Integer

    If Intersect(Target, Range("M13:S22")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub

    For Each Cel In Range("D5:F30")

        If Cel.Value = "" Then

            For I = 4 To Cel.Column

                'si la photo a déjà été choisie, message et fin
                If Cells(Cel.Row, I).Value = Target.Value Then MsgBox "Vous avez déjà choisi cette photo !", vbInformation: Exit Sub

            Next I
            Cel.Value = Target.Value

            'si les trois choix ont été fait, sélectionne la cellule M12
            If Cel.Column = 6 Then Range("M12").Select
            Exit For

            End If

    Next Cel

End Sub

J'ai intégré un contrôle afin d'éviter le choix de la même photo sur la même ligne. Il te faut déverrouiller la cellule M12 afin qu'elle soit sélectionnable par le code une fois les trois choix réalisé par l'adhérent. Tu peux en coisir une autre si tu veux, c'est pour cette raison que j'ai utilisé Range() plutôt que Cells() (plus facile pour celui qui n'est pas trop habitué)

Re

Je viens de tester vite fait ton dernier code = c'est NICKEL-CHROME !

J'ai essayé de créer ou de trouver un blocage.... sans succès et ton affichage est très parlant = excellente idée.

Il ne me reste plus qu'à dire

et excellente soirée.

Tonthon

Content d'avoir pu t'aider

Content d'avoir pu t'aider

Bonjour,

J'ai omis de préciser que j'avais apprécié les "commentaires" en vert dans le code qui permettent de comprendre, du moins saisir ce qui est demandé..... car tout le monde ne le fait pas.

Je clos cette discussion et par ...

Excellente journée

Tonthon

Bonjour,

Je reviens ici car en réalisant le vrai tableur pour le club photo (choix de 5 photos et non de 3 au premier tour) j'ai repris les différents codes en actualisant les emplacements.

mais je rencontre une difficulté pour "associer" sans conflit les 3 codes...

  • permettant le "coller/copier"
  • permettant le tri
  • pour lancer une macro à partir d'une cellule.

Cela doit être ultra simple et basique mais je bloque...

Merci d'avance

re,

à tester,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cel As Range
Dim I As Integer

    If Intersect(Target, Range("L6:R15")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub

    For Each Cel In Range("D5:H84")
        If Cel.Value = "" Then
            For I = 4 To Cel.Column
                'si la photo a déjà été choisie, message et fin
                If Cells(Cel.Row, I).Value = Target.Value Then MsgBox "Vous avez déjà choisi cette photo !", vbInformation: Exit Sub
            Next I
            Cel.Value = Target.Value

            'si les trois choix ont été fait, sélectionne la cellule M12.... j'ai modifié en B1 et avec 5 choix
            If Cel.Column = 7 Then Range("B1").Select    ' en cas d'ajout de photo   column à modifier !
            Exit For
        End If

        If Not Application.Intersect(Target, Range("N1")) Is Nothing Then  'je voudrais remplacer le Ctrl+ Maj + E par un clic (double, droit ou gauche sur N1
         Macro1
        End If

        If Target.Address = "$I$3" Then      'cette cellule lance le tri

         With Worksheets("PREMIER TOUR")
            .Unprotect ""
            .AutoFilter.Sort.SortFields.Clear
            .AutoFilter.Sort.SortFields.Add Key:=Range("J5:J84"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

                With .AutoFilter.Sort
                   .Header = xlYes
                   .MatchCase = False
                   .Orientation = xlTopToBottom
                   .SortMethod = xlPinYin
                   .Apply
                End With

            .Cells(5, "D").Select
            .Protect ""
        End With
      End If

     Next Cel
   End Sub

re,

à tester,

[code]...................../code]

Re

J'ai copier le code dans la feuille.... sans succès ::(

J'ai vérifié la référence aux cellules, la macro1 ne couvrait pas l'ajout d'une colonne c'est le seul ajustement de mémoire.

Pour faire simple, j'ai rajouté des commentaires directement dans le code pour mieux repérer les zones concernées mais cela ne marche pas.... "erreur de compilation".

Cela ne doit pas être grand chose mais cela dépasse mes connaissances.

Pour lancer la macro1 à partir de N1, cela ne passe pas par un doubleclic ou droiteclic ?

Une fois cette feuille résolue, je devrais pouvoir finir la seconde feuille.

Re

J'ai copier le code dans la feuille.... sans succès

J'ai vérifié la référence aux cellules, la macro1 ne couvrait pas l'ajout d'une colonne c'est le seul ajustement de mémoire.

Pour faire simple, j'ai rajouté des commentaires directement dans le code pour mieux repérer les zones concernées mais cela ne marche pas.... "erreur de compilation".

Cela ne doit pas être grand chose mais cela dépasse mes connaissances.

Pour lancer la macro1 à partir de N1, cela ne passe pas par un doubleclic ou droiteclic ?

Une fois cette feuille résolue, je devrais pouvoir finir la seconde feuille.

[/quote]

Bonjour,

Ton classeur en retour :

Bonjour,

Ton classeur en retour :

Je retrouve le sourire.... quelques essais presque totalement concluants

Il me semble que le lancement de la macro ne se fait pas toujours mais je n'ai pas eu le temps de voir dans quelques circonstances.... je reverrai cela demain (cela a fonctionné mais après une utilisation la macro ne s'est pas lancée ???)

Merci,

Tonthon

Bonjour,

J'ai trouvé pour la macro... il manquait la déprotection de la feuille "premier tour" pour qu'il se lance !

J'en ai profité pour finir la seconde feuille (copie du code de la première feuille dans la seconde + mise à jour des emplacements des cellules) mais je reste avec 2 soucis sur cette feuille "second tour"

  • le tri ne se fait pas et je ne vois pas où est mon erreur
  • le "coller/copier" se fait parfaitement comme dans "premier tour" sauf pour la même cellule en fin d'une ligne que l'on retrouve en début d'une nouvelle ligne

Comme souvent à force d'être dedans, on ne voit plus rien... et heureusement qu'il y a le forum !

Excellente journée

Rechercher des sujets similaires à "coller automatiquement valeur"