XL 2013 demande d'aide sur VBA

  • Initiateur de la discussion Initiateur de la discussion bredeche
  • Date de début Date de début

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 !

bredeche

XLDnaute Occasionnel
Bonjour
j'ai mis en place un formulaire ou les éléments s' enregistres ligne par ligne dans le tableau "recap"
a cela je voudrai sur le modèle via l'onglet "trame "
a chaque nouvelle ligne sur validation du bouton valider de mon formulaire ,je voudrais qu'une fiche soit crée sur un nouvelle onglet avec tout les éléments rentré dans le formulaire sur le support de ma trame
et que cet onglet porte le nom de ma colonne B soit B10 qui actuellement il y a une formule "=CONCATENER(Y10;"_"; Z10;"_";AE10)"


mon formulaire et la création du nouvelle onglet fonctionne mais mon problème est sur appellation de l'onglet et sur l'enregistrement des données
du formulaire

je vous remercie d'avance de votre aide
 

Pièces jointes

Dernière édition:
Re bonjour mon problème est bien sur la création d'onglet la macro me produit 3 onglet et mes donne ne s'enregistre pas dans la fiche et mon second problème est quand je réalise la deuxième fiche
sur le fichier joints j 'ai supprimé ma boucle mais le problème persiste
merci e votre aide
 

Pièces jointes

Bonjour
Je n'ai pas pris le temps de travailler sur ton fichier (trop long)
Mais je te soumet ici un exemple sur la manière de réaliser ce que tu souhaites.
Le principe, faire un tableau de correspondance entre tes données recap et ta trame
Faire une copie de ta trame
Faire une boucle qui remplie la nouvelle trame
tu intègres et adapte cela dans ta macro valider
Dans l'exemple joint, sélectionne la ligne de recap, en n'oubliant pas le nom, et clique
Cela devrait te mettre sur la piste,
Cette méthode à le mérite de pouvoir changer facilement la forme de ta feuille trame ou celle de ta feuille récap,
Tu n'as qu'a modifier le tableau
 

Pièces jointes

VB:
Private Sub CommandButton2_Click() 'Bouton VALIDER
Dim NewLig As Long
Dim c As Range

    With Sheets("Recap")
        NewLig = Application.Max(10, .Range("A" & Rows.Count).End(xlUp).Row + 1)
        .Range("A" & NewLig).Value = Application.WorksheetFunction.Max(Range("A:A")) + 1
        .Range("C" & NewLig).Value = TextBoxobjet
        .Range("Y" & NewLig).Value = ComboBox4
        .Range("Z" & NewLig).Value = TextBoxfiche
        .Range("AA" & NewLig).Value = CDate(TextBoxdate)
        .Range("AB" & NewLig).Value = TextBoximputation
        .Range("AC" & NewLig).Value = TextBoxlocalisation
        .Range("AD" & NewLig).Value = ComboBox1
        .Range("D" & NewLig).Value = ComboBox1
        .Range("AE" & NewLig).Value = TextBoxannée
        .Range("AF" & NewLig).Value = CheckBox1
        .Range("AG" & NewLig).Value = CheckBox2
        .Range("AH" & NewLig).Value = CheckBox3
        .Range("AI" & NewLig).Value = TextBoxconstat
        .Range("AJ" & NewLig).Value = TextBoxrisque
        .Range("AK" & NewLig).Value = TextBoxorigine
        .Range("AL" & NewLig).Value = TextBoxconservatoires
        .Range("AM" & NewLig).Value = TextBoxtravaux
        .Range("AN" & NewLig).Value = TextBoxobservation
        .Range("AO" & NewLig).Value = TextBoxconstructeur
        .Range("AP" & NewLig).Value = TextBoxdureevie1
        .Range("AQ" & NewLig).Value = TextBoxdureevie2
        .Range("AR" & NewLig).Value = TextBoximage
    End With
    
   Application.ScreenUpdating = False
    'On crée les onglets qui sont listés à partir de la cellule
    'A2 de l'onglet nommé Liste
    Set c = Worksheets("RECAP").Range("B10") 'cellule de départ
  

        'on copie le modèle en dernier
        Worksheets("TRAME").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)

        With Worksheets(ThisWorkbook.Sheets.Count) 'avec l'onglet créé
            .Name = c.Value    'je renome
            
            'Je remplit mon modèle comme je veut...
            .Range("B3") = TextBoxobjet
              .Range("A6") = TextBoxfiche
                .Range("B6") = TextBoxdate
                 .Range("C6") = TextBoximputation
                  .Range("D6") = TextBoxlocalisation
                   .Range("E6") = ComboBox1
                    .Range("F6") = TextBoxannée
                     .Range("G6") = ComboBox4
                     .Range("A9") = TextBoxconstat
                      .Range("E11") = CheckBox1
                       .Range("E12") = CheckBox2
                        .Range("E13") = CheckBox3
                         .Range("A16") = TextBoxrisque
                          .Range("A21") = TextBoxorigine
                           .Range("A26") = TextBoxconservatoires
                            .Range("A30") = TextBoxtravaux
                             .Range("A35") = TextBoxobservation
                              .Range("H15") = TextBoxconstructeur
                                .Range("K17") = TextBoxdureevie1
                                 .Range("K18") = TextBoxdureevie2
                                  .Range("H20") = TextBoximage

        End With

            Application.ScreenUpdating = True
    
    Unload UserForm1
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
586
  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
404
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
653
Réponses
20
Affichages
1 K
Retour