Questions d'utilisation USERFORM

Sly

XLDnaute Nouveau
Bonjour à tous,
voila quelques temps que je bute sur un userform...

Il me sert (servira plutôt ^^) à gerer un suivi d'erreur avec
-date => Combobox x2
-erreur => Combobox
-code => Textbox
-action correctrice => Combobox
-action SAV ou non => OptionBouton_Click

Voila son code:

Private Sub Annule_Click()
Range("B8:G8").Select
Selection.Delete Shift:=xlUp
UserForm1.Hide

End Sub

Private Sub ok_Click()
Sheets("Feuil1").Range("e8").Value = TextBox1.Value
Sheets("Feuil1").Range("f8").Value = TextBox2.Value
Sheets("Feuil1").Range("b8").Value = ComboBox1.Value
Sheets("Feuil1").Range("c8").Value = ComboBox2.Value
Sheets("Feuil1").Range("d8").Value = ComboBox3.Value
UserForm1.Hide
End Sub

Private Sub OptionButton1_Click()
Range("g8").Value = "oui"
Range("B8:f8").Select
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub

Private Sub OptionButton2_Click()
Range("B8:f8").Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("G8").Select
Selection.Delete Shift:=xlUp
End Sub

Private Sub UserForm_Click()

End Sub
Pour lancer la macro je fais ça:

Range("B8:G8").Select
Selection.Insert Shift:=xlDown
Selection.RowHeight = 15
[B7:G8].Copy Range("B8")
UserForm1.Show
Ce que je veux:
- copier la ligne 8 qui me sert pour la mise en page
- remplir la date, le message d'erreur, son code et preciser si action SAV ou non
- colorier B8;G8 selon l'action corrective du SAV ou non
- mettre un oui en H8 quand action corrective SAV faite (pour comptabiliser le nombre dans un autre tableau (je ne sais pas si on peut compter les cellules d'une couleur specifique)
- recommencer ensuite à créer des erreurs en décalant la première d'une ligne vers le bas

Ce qui ne marche pas:
- quand je crée une nouvelle erreur (relance de la macro par un bouton) les valeurs ainsi que la couleur de fond disparaissent (valeur de B8 à H8 et couleur de B8 à H8)


- ce que je n'arrive pas à faire: trier les dates dans l'ordre chronologique... (est il possible de mettre un choix par calendrier dans un useform?)


Si quelqu'un peut m'aider à améliorer tout ça ça serait vraiment sympa!

Bon dimanche! :)
 

Fichiers joints

Paritec

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

Bonjour Sly,
si j'arrive à comprendre je te le fait mais la je vais à table je te redis après
a+
Papou:)
 

nyko283

XLDnaute Occasionnel
Re : Questions d'utilisation USERFORM

Bonjour sly, Papou, le forum

J'ai légerement modifié le fichier (Jour /Mois) pour simplifier la recherche chronologique
mais l'affichage reste le meme,

Je suis donc passer par un calendrier sur l'Usf (Date and Time Picker), qui nécessite d'activer la référence microsoft windows common control-2 6.0 (sp6) si tu ne l'as pas telecharge le fichier MSCOMT.OCX et instale le .

si tu as d'autres souci que j'aurais oublié....

Bon dimanche à tous
 

Fichiers joints

stefan373

XLDnaute Occasionnel
Bonjour sly, paritec et le forum.

Pour ce qui est de l'insertion de la ligne avec la macro, la ligne ci-dessous est inutile c'est elle qui efface la ligne insérée précédemment.
Code:
[B7:G8].Copy Range("B8")
Pour ce qui est de la date, il faut ajouter la commande cdate(combobox1) pour pouvoir faire un tri, sinon la date est considérée comme texte.
Mais je ne sais pas si cela fonctionne sur 2 colonne il suffit sinon d'entrer la date manuellement dans un seul textbox.

A +

Bonjour nyko pas rafréchis.
 

Paritec

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

bonjour à tous
alors voilà le fichier modifié pour l'insertion des lignes enfin si j'ai compris
a+
Papou

EDIT bonjour Nyco j'avais pas vu ta réponse excuse a+
 

Fichiers joints

Dernière édition:

Sly

XLDnaute Nouveau
Re : Questions d'utilisation USERFORM

Déjà désolé de mettre beaucoup plus de temps que vous pour répondre!
Merci beaucoup à nyko283, Paritek et stefan373!

Tout d'abord merci à stefan373 pour la ligne qui servait à rien!

Ensuite une petite question pour Paritec: déjà la macro à beaucoup maigri! Visiblement beaucoup moins de fioritures!

Dans le passage:
If OptionButton1 Then Sheets("Feuil1").Range("B8:F8").Interior.ColorIndex = 34 Else Sheets("Feuil1").Range("B8:F8").Interior.ColorIndex = 35
Si je veut rajouter en G8 un ''oui'' si OptionButton1 coché j'imagine que je dois ecrire quelque chose avant le "Else" mais comment? tout ce que j'ai essayé me donne un message d'erreur ou alors rien ne se passe...

Pour finir nyko283 j'ai juste envie de dire chapeau!
Tu as fait exactement ce que je souhaitais faire!
Mais vu le code je suis loins d'y arriver tout seul! J'y comprend pas grand chose mais il merite un moment pour le déchiffrer!

Encore merci!

Bon week end à tous!
 

Paritec

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

Bonsoir Sly,
a+
papou:)

VB:
If OptionButton1 Then Sheets("Feuil1").Range("B8:F8").Interior.ColorIndex = 34: Sheets("Feuil1").Range("G8")="oui" Else  Sheets("Feuil1").Range("B8:F8").Interior.ColorIndex = 35
 

nyko283

XLDnaute Occasionnel
Re : Questions d'utilisation USERFORM

Bonjour à tous,

Sly sur le fichier joint j'y ai ajouté des commentaires à presque toutes les lignes pour te permettre de t'y retrouver plus facilement.

Papou, Stefan bien au contraire je pense que plusieurs solutions est "la solution", mon code est "basique" et de voir les réponse des autres permet de découvrir d'autres méthodes et possibilité, ;)

Bon week end à vous
 

Fichiers joints

Paritec

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

Bonjour Nyko le forum
bon alors si tu le prend ainsi, c'est très bien :)
pour ta mise en page regardes ci-dessous, cela te fais gagner des lignes de codes
a+
Papou:)

VB:
For a = 7 To 10
        With Range("B" & i & ":F" & i).Borders(a)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
Next a
 

nyko283

XLDnaute Occasionnel
Re : Questions d'utilisation USERFORM

Merci Papou,

Je vais donc pouvoir aérer un peu mes codes,car je ne conaissais pas encore que l'on pouvais "numérisé" le choix de la bordure.

Et donc si j'ai tous compris on peu meme dire "For a =7 to 11"...;)
 

Paritec

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

Re Nyco,
non c'est For a = 7 to 12" mais attention si tu n'as pas de ligne intérieure verticale et horizontale tu as plantage !!!!
a+
papou:)
 

Staple1600

XLDnaute Barbatruc
Re : Questions d'utilisation USERFORM

Bonjour à tous, salut paritec


Pour réduire encore les lignes de code concernant les bordures on peut aussi écrire:

Exemple à adapter
Code:
Sub a()
Range("B1:F15").Borders.Linestyle=1
End Sub
 

nyko283

XLDnaute Occasionnel
Re : Questions d'utilisation USERFORM

A ce rythme on auras bientot meme plus besoin d'écrire:cool:, en tous cas merci pour l'info;)
 

Sly

XLDnaute Nouveau
Re : Questions d'utilisation USERFORM

Merci Nyko pour les nouvelles explications!
a+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas