Incorporer une macro existante dans une USF
Bonjour,
Pouvez-vous m'aider?
J'aimerais incorporer la macro 'couleur()' avec l'usf 'Etiquettes Diamond Painting' ?
( bouton "CommandButton1" afin d'utiliser les symboles de la feuille "SYMBOLES")
La macro couleur() fonctionne super bien mais je ne peux pas insérer des symboles bizarres.
ou alors ajouter un bouton qui effectuerait la macro couleur (je ne suis pas arrivé)
F3 à O18 encadré en rouge avec les couleur DMC (pris les données sur la feuille DMC).
et si possible un bouton pour ajouter dans la feuille "SYMBOLES des nouveaux symboles (dans usf, si c'est possible?)
merci
Hello,
Pour appeler la macro couleur depuis ton userform tu peux utiliser cette instruction :
Call couleurPour moi tu utilises mal l'instruction InputBox dans ta macro Couleur. Laisser la saisie libre à un utilisateur n'est jamais bon ... Surtout quand tu exploites dans ton code la réponse de l'utilisateur (InputBox permet de verrouiller certains format mais dans le cas des symboles il ne me semble pas)
Je ferai un autre userform avec une combobox et la liste de symbole. Tu peux faire de même avec les numeros de couleur
++
Bonjour,
Merci mais j'avais essayé "call"
La macro, comme tu as pu le voir, fonctionne avec la feuille DMC
J'aimerais, avec USF que j'ai commencé à faire mais la couleur de la cellule correspondante au numéro je ne trouve pas (panne de neurone), reproduire la même chose qu'avec la macro couleur.
Pour inputBox je ne connais que cette façon (copie/coller sur d'autre site) mais si tu me montre comment faire autrement j'en serais ravi😁
Merci pour ton aide trop sympa
👌👍
@bientôt
Bonjour,
Je n'arrive pas à mettre une sécurité en ligne 13:
la comBoBox1 si je la laisse vide ça procure une erreur
Comment faire?
et aussi pour avoir la combobox triée
merci
@ bientôt
Option Compare Text
Sub Couleur2()
1 Dim DerLig_A As Long, DerLig_F As Long, N°_Couleur As Long, DerCol As Long
2 Dim symbole As Variant
3 Dim Titre As String
4 DerLig_A = Range("A" & Rows.Count).End(xlUp).Row
5 DerCol = Range("ZZ3").End(xlToLeft).Column
6 If DerCol = 1 Then DerCol = 3
7 Titre = Range("D1").Value
'----------variables --------------
8 N°_Couleur = UserForm1.ComboBox1.Value 'N°DMC
9 symbole = UserForm1.ComboBox2.Value ' Symbole
10 Titre = UserForm1.TextBox3.Value ' Titre
'------------------si case vide ----------------------
11 If UserForm1.TextBox3 = "" Then MsgBox ("Vous n'avez pas saisi de Titre!"): Exit Sub
12 If UserForm1.ComboBox2 = "" Then MsgBox ("Vous n'avez pas saisi de Symbole!"): Exit Sub
'---------si case vide = ERREUR '13'---------------------------------------------------------------
13 If UserForm1.ComboBox1 = "" Then MsgBox ("Vous n'avez pas saisi de N° de Couleur!"): Exit Sub ' ça ne fonctionne pas
'------------------------------------------------------------------------------------------------------
14 DerLig_F = Cells(Rows.Count, DerCol).End(xlUp).Row
15 If DerLig_F = 18 Then
16 DerLig_F = 2
17 DerCol = DerCol + 1
18 ElseIf DerLig_F = 1 Then
19 DerLig_F = 2
20 End If
21 With Sheets("DMC").Range("A1:A" & DerLig_A)
22 Set c = .Find(N°_Couleur, lookat:=xlWhole)
23 If Not c Is Nothing Then
24 Cells(DerLig_F + 1, DerCol) = Titre & Chr(10) & N°_Couleur & Chr(10) & symbole
25 Cells(DerLig_F + 1, DerCol).Interior.Color = Cells(c.Row, "A").Interior.Color
26 Cells(DerLig_F + 1, DerCol).Font.Color = Cells(c.Row, "A").Font.Color
27 Else
28 MsgBox "Couleur introuvable"
29 End If
30 End With
31 End SubHello,
Pas de soucis sur ta gestion d'erreur chez moi. Envoi ton nouveau fichier stp.
Pour la combo triée la façon la + simple est celle ci selon moi :
Sheets("Feuil1").Range("A1:A5").Copy Sheets("Feuil2").Range("A1:A5")
Application.CutCopyMode = False
With Sheets("Feuil2").Sort
.SortFields.Add2 Key:=Range("A1:A5"), SortOn:=xlSortOnValues, Order:=xlDescending
.SetRange Range("A1:A5")
.Header = xlNo
.Apply
End WithTu copies la plage source de ta combo dans une feuille de travail (ici feuil2) puis tu tries cette plage. Tu n'as plus qu'à charger cette liste dans ta combo.
Il y a d'autres façon de faire mais + complexes
Bonjour,
merci
j'ai toujours erreur 13 si je laisse case vide 'combobox1'
et je n'arrive plus à voir ce qui ne va pas....
merci
@bientôt
L'erreur est sur cette ligne plutôt :
8 N°_Couleur = UserForm1.ComboBox1.Value 'N°DMCTu n'as pas le droit de mettre le signe "°" dans une variable
Bonjour,
J'ai changé le nom de la variable mais toujours la même erreur
quand la comboBox1(NuméroDMC) est vide = erreur13
@bientôt
Hello,
La gestion d'erreur avant l'affectation des variables :
'------------------si case vide ----------------------
8 If UserForm1.TextBox3 = "" Then MsgBox ("Vous n'avez pas saisi de Titre!"): Exit Sub
9 If UserForm1.ComboBox2 = "" Then MsgBox ("Vous n'avez pas saisi de Symbole!"): Exit Sub
10 If UserForm1.ComboBox1 = "" Then MsgBox ("Vous n'avez pas saisi de N° de Couleur!"): Exit Sub
'----------variables --------------
11 NumColor = UserForm1.ComboBox1.Value 'N°DMC
12 symbole = UserForm1.ComboBox2.Value ' Symbole
13 Titre = UserForm1.TextBox3.Value ' TitreBonsoir
BRAVO!
ça fonctionne
C'est bien 2 choses, "°" et l'emplacement des codes , que je n'aurais jamais pensé à modifier et pourtant parfois je reste des heures à "trifouiller"
@bientôt
Pour les variables il faut rester dans du basique (lettres ou lettres+chiffres). Pas de carateres speciaux, pas d'accents ...
La gestion d'erreurs doit se faire toujours en premier
