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 couleur

Pour 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,

J'ai trouvé !

Comment fait-on pour avoir la comBoBox triée?

merci

dmc

@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 Sub

Hello,

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 With

Tu 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°DMC

Tu n'as pas le droit de mettre le signe "°" dans une variable

Bonsoir,

Ho punaise, je n'aurais jamais trouvé

Merci...

@bientôt

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 ' Titre

Bonsoir

maître quand deviendrais-je aussi fort que vous?

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

Rechercher des sujets similaires à "incorporer macro existante usf"