XL 2013 demande d'aide sur VBA

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

  • ger 1.xlsm
    149.3 KB · Affichages: 2
Dernière édition:

bredeche

XLDnaute Occasionnel
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

  • ger 1.xlsm
    150.5 KB · Affichages: 2

sousou

XLDnaute Barbatruc
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

  • testger.xlsm
    19.9 KB · Affichages: 6

bredeche

XLDnaute Occasionnel
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
 

Discussions similaires

Réponses
2
Affichages
227

Statistiques des forums

Discussions
311 723
Messages
2 081 934
Membres
101 844
dernier inscrit
pktla