C
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 !
Sub CreationBouton()
For i = 1 To Sheets("Ficheresponsableachat").Range("A65536").End(xlUp).Row
Sheets("Ficheresponsableachat").Buttons.Add(Range("K" & i).Left, Range("K" & i).Top, Range("K" & i).Width * 2, Range("K" & i).Height).Select
Selection.Characters.Text = "Traiter la demande"
Selection.OnAction = "'traiterlademande " & i & " '"
Next
End Sub
Bonjour carlitostyle,
Voici un début de piste pour ce que tu veux faire :
VB:Sub CreationBouton() For i = 1 To Sheets("Ficheresponsableachat").Range("A65536").End(xlUp).Row Sheets("Ficheresponsableachat").Buttons.Add(Range("K" & i).Left, Range("K" & i).Top, Range("K" & i).Width * 2, Range("K" & i).Height).Select Selection.Characters.Text = "Traiter la demande" Selection.OnAction = "traiterlademande" Next End Sub
Cette macro te permet de créer un bouton sur chaque ligne avec le côté gauche coïncidant avec le côté gauche de la colonne K, de la même hauteur que la ligne courante et de largeur K*2. De plus, j'affecte ta macro traiterlademande() avec en paramètre la ligne courante à chaque nouveau bouton. Il ne te reste plus qu'à modifier ta macro traiterlademande() pour qu'elle accepte un paramètre ainsi que tes Usf pour qu'ils récupère les données en fonction de ton paramètre.
Bonne journée,
WUTED
Sub traiterlademande(i As String)
Sheets("Ficheresponsableachat").Range("A" & i).Select
UserForm1.Show
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans une cellule
Dim r As Range 'déclare la variable r (Recherche)
Dim li As Integer 'déclare la variable li (LIgne)
If Target.Value = "" Then Exit Sub 'si la cellule double-cliquée est vide, sort de la procédure
Cancel = True 'évite le mode édition lié au double-clic
ref = CStr(Cells(Target.Row, 6).Value) 'définit la référence ref (variable déclarée publique dans le module1)
With Sheets("Etatdustock") 'prend en compte l'onglet "Etatdustock"
Set r = .Columns(1).Find(ref, , xlValues, xlWhole) 'définit la recherche r
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence
li = r.Row 'définit la ligne li
Else 'sinon
MsgBox "Référence non trouvée !" 'message
Exit Sub 'sort de la procédure
End If 'fin de la condition
UserForm1.llstock.Caption = .Cells(li, 4).Value 'renseigne le label "Quantité"
UserForm1.llreference.Caption = .Cells(li, 1).Value 'renseigne le label "Référence"
UserForm1.llprix.Caption = .Cells(li, 3).Value 'renseigne le label "Prix"
UserForm1.llprix = Format(UserForm1.llprix, "#,##0.00")
UserForm1.Show 'affiche l'UserForm1
End With 'fin de la prise en compte de l'onglet "Etatdustock"
End Sub
[/CODE]
Je ne comprends pas pourquoi la quantité doit être saisie alors qu'elle a déjà été donnée lors de la Demande d'achat et qu'elle figure dans la colonne H ???
Bonjour CarlitoStyle, bonjour le forum,
Si je t'ai demandé un fichier avec exemple c'est que chez moi je n'ai pas le bouton Commander qui s'affiche donc je ne peux pas comprendre ton problème... Puis quant tu dis : ça me souligne en jaune une ligne dans ma fenêtre VBA. Il serait préférable que tu m'indiques le code complet et la ligne qui pose problème...
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?