Userform Usine à Gaz

Fermé
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 - 4 juin 2013 à 11:47
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 - 5 juin 2013 à 19:37
Bonjour,

J'ai créé une Usine à Gaz et je n'arrive pas à voir comment m'en sortir.

Voici le lien pour découvrir le fichier : http://cjoint.com/13jn/CFelNvXP5Tu.htm

Ce que j'aimerais en fait, c'est que la macro "LoiNormale" se répète. Je vous explique pourquoi :

Lorsque je suis sur la première page de mon Userform, je sélectionne Capabilité Loi Normale 30 Valeurs ... BlaBlaBla.

Cela déclenche ma macro "LoiNormale" et ouvre les documents associés afin de piocher les informations dont j'ai besoin automatiquement. Ensuite en cliquant sur le CommandButoon4 de la page 4, le fichier s'enregistre et les autres se ferme et je peux récupérer ce qui m'intéresse.

Donc en fait tout va bien car j'ai réussi à créer une macro qui me permet d'avoir tout ce que je veux.
Sauf que je voudrais en plus que cette macro s'effectue sur tous les onglets du fichier qui est ouvert par la macro "LoiNormale" car pour l'instant il ne récupère que le premier onglet.
En fait faire le même déroulement que maintenant, mais pour chaque onglet !

Pour l'instant la seule solution que j'ai trouvé c'est de lancer la macro, puis une fois que le premier onglet est bien réalisé, je supprime le premier onglet du fichier source comme ça en réexécutant la macro, elle me prend toujours le premier onglet sauf qu'au final c'est le deuxième puisque j'ai supprimé le premier juste avant... Bref super archaïque et fastidieux !

En tout cas n'hésitez pas si vous avez des questions, car je ne pense pas avoir été clair ... ^^

Merci d'avance. Et à très vite j'espère !



2 réponses

f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
4 juin 2013 à 18:29
Bonjour,

Sauf que je voudrais en plus que cette macro s'effectue sur tous les onglets du fichier qui est ouvert par la macro "LoiNormale" car pour l'instant il ne récupère que le premier onglet.
En fait faire le même déroulement que maintenant, mais pour chaque onglet !


je ne saisi pas vraiment car traiter tous les onglets dans "LoiNormale" pas de probleme, mais le resultat ne sera pas concluent matheusement parlant:

            If Application.Dialogs(xlDialogOpen).Show = True Then

                a = ActiveWorkbook.Name
                b = ActiveWorkbook.Path

                'enumeration des onglets
                For i = 1 To Workbooks(a).Sheets.Count
                    onglet = Worksheets(i).Name

                    UserForm1.TextBox33.Value = "5"
                    UserForm1.TextBox28.Value = "Quickscope"
                ' code
                ' code

                Next i



Besoin de plus d'explications

A+
0
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 28
5 juin 2013 à 09:02
Bonjour et merci d'avoir répondu.

La macro complète permet de traiter comme je le veux UN onglet. Ce que je veux maintenant, c'est appliqué ce mode opératoire automatiquement sur tous les onglets les uns après les autres.

1/ Ouverture du fichier où on récupère les données. (Boite de dialogue et choix du fichier par l'utilisateur)
2/ Récupération de certaines données de ce fichier.
3/ Coller ces informations sur le fichier final. (Capability Normal Law ...)
4/ Faire apparaitre ces données dans le userform qui s'affichera pour que l'utilisateur puisse contrôler et/ou modifier l'exactitude des données récupérées.
5/ Une fois que l'utilisateur à contrôler et appuyé sur Continuer (CommandButton4), la macro récupère les dernières données du fichier ouvert par l'utilisateur, les colle dans le fichier Capability Normal Law et enregistre automatiquement ce nouveau fichier.

J'espère avoir été un peu plus clair et que vous arrivez à voir ce que je veux. ^^

Merci
0
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
5 juin 2013 à 11:04
Bonjour,

C'est ce que j'avais entrevu, mais sauf erreur de ma part, vous enregistrez toujours au meme endroit avec votre bouton CommandButton4, donc je repete: est-ce normal

A+
0
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 28
5 juin 2013 à 11:49
Oui oui c'est normal.
0
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
5 juin 2013 à 12:20
re,

je regarde pour faire, je vous ferais signe vers 20h, je suis absent cette apres-midi


A+
0
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 28
5 juin 2013 à 16:03
Sinon c'est bon, je me suis arrangé autrement avec Combobox etc. Je devais finir pour ce soir et j'ai préféré assurer le coup même si c'est moins bien.
Mais dans tous les cas ça marche.

Merci quand même. =)
0
f894009 Messages postés 17239 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 10 février 2025 1 713
5 juin 2013 à 19:37
Re,

a voir:

Sub LoiNormale()
    Dim Chemin As String
    Dim wrkb As Workbook

    Set wrkb = Workbooks("Q-R-053-FR-1 - Capability Study - Normal Law.xls")

    UserForm1.MultiPage1.Value = 3
    UserForm1.Hide

    Select Case MsgBox("Votre choix est : Conversion Loi Normale" + vbCr + " " + vbCr + "Voulez-vous continuer et choisir le fichier a convertir ?", vbOKCancel + vbQuestion, "NOBEL AUTOMOTIVE")
        Case vbOK
            Chemin = Sheets("DATAS").Range("D9")

            Workbooks.Open Filename:=Chemin & "\Fichiers Type\Q-R-053-FR-1 - Capability Study - Normal Law"
                        
            If Application.Dialogs(xlDialogOpen).Show = True Then
                a = ActiveWorkbook.Name
                b = ActiveWorkbook.Path
                'traitement de tous les onglets
                For i = 1 To Workbooks(a).Sheets.Count
                    onglet = Worksheets(i).Name

                    UserForm1.TextBox33.Value = "5"
                    UserForm1.TextBox28.Value = "Quickscope"
                    UserForm1.TextBox29.Value = "1951-043"
                    UserForm1.TextBox24.Value = Date
                    UserForm1.TextBox25.Value = Workbooks(a).Sheets(onglet).Range("A1").Value
                    UserForm1.TextBox32.Value = TextBox26 & " - " & TextBox25 & " - "
                    Me.ComboBox3.AddItem "PA 6.6"
                    Me.ComboBox3.AddItem "PA 6.6GF30"
                    Me.ComboBox3.AddItem "PA 12"
                    
                    'modif: groupement de cellules
                    wrkb.Sheets("capa échantillon").Range("B13:B27").Value = Workbooks(a).Sheets(onglet).Range("C47:C61").Value
                    wrkb.Sheets("capa échantillon").Range("C13:C27").Value = Workbooks(a).Sheets(onglet).Range("C62:C76").Value

                    UserForm1.TextBox4.Value = Workbooks(a).Sheets(onglet).Range("C39").Value
                    wrkb.Sheets("capa échantillon").Range("D6").Value = UserForm1.TextBox24.Value
                    wrkb.Sheets("capa échantillon").Range("H6").Value = UserForm1.TextBox25.Value
                    wrkb.Sheets("capa échantillon").Range("D7").Value = UserForm1.TextBox26.Value
                    wrkb.Sheets("capa échantillon").Range("I7").Value = UserForm1.ComboBox3.Value
                    wrkb.Sheets("capa échantillon").Range("E8").Value = UserForm1.TextBox28.Value
                    wrkb.Sheets("capa échantillon").Range("J8").Value = UserForm1.TextBox29.Value

                    Workbooks(a).Close
                    Workbooks("Module de conversion TEST.xls").Activate

                    UserForm1.MultiPage1.page1.Visible = False
                    UserForm1.MultiPage1.page2.Visible = False
                    UserForm1.MultiPage1.page3.Visible = False
                    UserForm1.MultiPage1.page4.Visible = True
                    UserForm1.MultiPage1.Value = 3
                    UserForm1.Show
                Next i
            Else
                Dim Classeur As Workbook
                For Each Classeur In Workbooks
                    If Classeur.Name <> ThisWorkbook.Name Then
                        Classeur.Close
                    End If
                Next Classeur
            End If
        Case vbCancel
            UserForm1.MultiPage1.Value = 0
            UserForm1.OptionButton1.Value = False
            UserForm1.OptionButton13.Value = False
            UserForm1.OptionButton3.Value = False
            UserForm1.OptionButton14.Value = False
            UserForm1.Show
    End Select

End Sub
0