Créer une multitude de bouton dans une colonne à coté d'un tableau

Bonjour !

J'aurai besoin d'une aide pour une chose que je pense assez simple mais qui me fais bloquer.

J'ai une feuil nommé "MEUBLE" qui contient un tableau nommé "CATALOGUE_INDEX" qui s'étend de la colonne B jusqu'à M sur 14715 ligne (ligne 1 en entête inclus).

J'aimerais avoir en colonne N un bouton a chaque ligne (qui lors du clic effectuera une macro pour renvoyer les infos de certaines colonne et de SA propre ligne, que j'écrirais plus tard).

Merci d'avance pour votre aide.

Ps : Voici l'usage au cas ou quelqu'un aurait une idée plus pertinente que la mienne (ce qui est fort probable). Le tableau contient des références de meuble avec leurs détails, chaque bouton "ajoutez" me servira à ajouter certaines des infos sur un devis ou tout autre éléments par la suite. Chaque bouton effectuera la meme chose, seule la ligne et donc le meuble concerné changeront.

Encore merci !

Bonjour RomalN123456,

Pourquoi ne pas avoir un seul bouton (placé par exemple dans la ligne de titre du tableau) qui traiterait la ligne sélectionnée du tableau ?

Cdt,

Cylfo

J'ai peur que dans ce cas, dans l'usage cela crée des oublie ou des faute d'inattention (c'est une tache répétitive qui doit etre executé "rapidement".

Peut etre que je pourrais couplé la macro avec un msgbox qui demande la confirmation et la vérification qu'il s'agit bien du bon meuble. Mais cela coute du temps...

Re,

Un seul bouton qui se positionne sur la ligne sélectionnée ? voir fichier joint

34test.xlsm (232.48 Ko)

Cdlt,

Cylfo

C'est juste... PARFAIT.

Je regrette jamais de postez ici, merci à toi et à tous ceux qui m'ont déjà aider (et m'aideront encore je l'espère).

Bonne soirée !

Du coup j'utilise ce code qui fonctionne impeccable. Par contre dès que j'ajoute des filtre dans mon tableau (j'y suis contraint il fais 15000 lignes) alors c'est tout de suite moins efficace... selon le filtre activé ou le nombre de filtres activé alors le bouton n'apparait plus...

Avez vous une idée de comment maintenir la visibilité et l'emplacement du bouton peu importe les filtres activé ?

' Déclenchement d'une macro "AjoutezArticle" si le double-clic intervient dans la colonne "N" et que la cellule (colonne B) "Réf du meuble" est renseignée
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 14 And Target.Row >= 2 And Me.Range("B" & Target.Row).Value <> "" Then
AjoutezArticle
Cancel = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 1 And Me.Range("B" & Target.Row).Value <> "" Then
With Me.Shapes("btnMeuble")
.Top = Target.Top
.Left = Me.Range("N" & Target.Row).Left
.Width = Me.Range("N" & Target.Row).Width
.Height = Me.Range("N" & Target.Row).Height
.Visible = True
End With
Else
Me.Shapes("btnMeuble").Visible = False
End If
End Sub

Bonsoir RomaIN123456,

Pouvez-vous partager votre fichier (en anonymisant les données personnelles) ? Recréer un jeu de test de 15000 lignes en étant à peu près sûr d'être loin de la réalité ne me tente pas (exemple si le fichier contient des formules cela peut avoir une incidence mais comment deviner quelles sont les formule utilisées ...)

Cdlt,

Cylfo

Merci j'ai eu le temps de trouver, je pense qu'il s'agit seulement d'un petit bug d'affichage, puisqu'il me suffit de réajuster la largeur d'une colonne pour faire apparaitre le bouton et régler le problème... (oui je répète cette action à chaque fois que j'ajuste un filtre mais bon...).

Au cas ou, je joins le fichier vidé de données

24classeur1.zip (1.10 Mo)

Et pour compléter j'utilise ce code légèrement modifié du tiens, et surtout un bouton controle de formulaire. Et il ne s'adapte pas correctement à la celulle et se décale de plus en plus vers le bas au fur et a mesure que je descend dans le tableau...

' Déclenchement d'une macro "AjoutezArticle" si le double-clic intervient dans la colonne "O" et que la cellule (colonne B) "Réf du meuble" est renseignée
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Column = 15 And Target.Row >= 2 And Me.Range("B" & Target.Row).Value <> "" Then
      AjoutezArticle
      Cancel = True
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Row > 1 And Me.Range("B" & Target.Row).Value <> "" Then
      With Me.Shapes("btnMeuble1")
         .Top = Target.Top
         .Left = Me.Range("O" & Target.Row).Left
         .Width = Me.Range("O" & Target.Row).Width
         .Height = Me.Range("O" & Target.Row).Height
         .Visible = True
      End With
   Else
      Me.Shapes("btnMeuble").Visible = False
   End If
End Sub

Bonsoir,

Avec la shape (forme rectangle), effectivement je constate cette anomalie d'affichage que je n'ai pas réussi à corriger ...

Par contre avec le contrôle formulaire bouton et une modification (ZOrder), cela fonctionne dans tous les cas et je ne constate aucun décalage à l'affichage. Attention et sans savoir si cela a un lien avec le problème de décalage, dans votre procédure vous faites référence une fois à "btnMeuble1" et la 2ème fois à "btnMeuble" ...

Procédure modifiée :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Row > 1 And Me.Range("B" & Target.Row).Value <> "" Then
      With Me.Shapes("btnMeuble1")
         .Top = Target.Top
         .Left = Me.Range("O" & Target.Row).Left
         .Width = Me.Range("O" & Target.Row).Width
         .Height = Me.Range("O" & Target.Row).Height
         .Visible = True
         .ZOrder msoBringToFront
      End With
   Else
      Me.Shapes("btnMeuble1").Visible = False
   End If
End Sub

Cdlt,

Cylfo

Bonjour à tous,

pourquoi s'embêter avec un bouton ?

L'événement est SelectionChange, la sélection de la cellule est suffisante en elle-même.
Inscrire sur toutes les lignes 'Détail' (ou autre) en bleu et souligné. Les gens comprendront que c'est un lien qui lance une action.
eric

Bonjour eriiic,

RomaIN123456 le confirmera ou non mais tel qu'il décrit sa demande, il souhaite que l'action s'exécute sur la ligne sélectionnée et pas que l'action sélectionne la ligne. Ce que feraient les événement SelectionChange ou BeforeDoubleClick (qui présenterait l'avantage de déclencher l'action de manière volontaire et pas simplement lors d'un simple déplacement) mais dans les 2 cas ce serait un peu plus compliqué de s'assurer qu'il n'y a pas eu changement de ligne mais uniquement de colonne.

Cdlt,

Cylfo

Bonjour,

On s'est mal compris.
Sur un SelectionChange dans la colonne, ouvrir directement un msgbox ou une boite de dialogue avec les différents choix possibles dont annulation et lancer la macro voulue.
Le numéro de ligne cliquée est connu sur un SelectionChange.
Mettre le texte en bleu et souligné en le camouflant comme un lien internet indique à l'utilisateur qu'il va produire une action.
Un bouton à gérer qui apparemment génère des difficultés n'apporte aucune plus-value pour moi
eric

Merci pour vos conseils, pour finir chez moi la forme fonctionne et ne se décale pas, j'ai toujours ce problème de disparition lorsque j'ajoute des filtres, mais il me suffit de réajustez la taille d'une colonne et pouf il réapparait (testez de nombreuse fois 0 échecs) donc dans l'immédiat ca me conviens, j'ai commencer la macro et jusqu'ici je m'en sort.

A part peut être une chose...

J'ai travaillé sur mon classeur (son emplacement est dans mon onedrive) sur le pc de la maison et tout va nickel, une fois au boulot et donc sur un autre pc, la macro ne passe pas à cause de présence de caractère "é" dans le code (c'est bien ca le problème oui oui...) après quelques recherche la seule raison possible est la différence entre l'anglais et le francais, et ok mon pc du boulot a quelques parametre en anglais... donc réglage de la langue dans windows, dans excel... et rien n'y fait... J'ai finis par abandonner et renommer "Quantité" en "Quantite" ca contourne le problème mais ca ne le résoud pas... Sans parler de mes msgbox qui m'affiche des caractères étrange au lieu des é ou è.

Enfin... Je ne cherche plus de solution a ce problème mais si quelqu'un arrivait à m'éclairer sur le fond de cette bizarrerie je suis preneur...

Merci encore !

Rechercher des sujets similaires à "creer multitude bouton colonne cote tableau"