Userform alimentant trois feuilles

bonjour le forum, et bon week end

j'ai un userform (Ajout_enregistrement) contenant plusieurs textBox, une comboBox et trois OptionBouton, j'ai deja reussi l'alimentation de la Bd (la premiere feuille) avec le bouton ajouter.

je souhaiterais recuperer certaines infos du userform afin d'alimenter les deux autres feuilles.

je me demande bien si je devrais ajouter du code dans le bouton ajouter ou dans la procédure Private Sub Worksheet_SelectionChange de chacune des deux feuilles.

ci dessous le code pour l'une des feuilles, mais ça ne marche pas. je fais en sorte que les infos s'actualise dans la feuille a chaque validation du bouton ajouter (CommandButton1)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ctrl As Control

    Do While Ajout_enregistrement.CommandButton1.Enabled

        Range("J10").Value = Ajout_enregistrement.NumeroDemande.Value

        For Each ctrl In Frame8.Controls
        If ctrl.Object.Value = True Then
             Range("C15").Value = ctrl.Object.Caption
            Exit For
        End If
        Next ctrl

        Range("D15").Value = Ajout_enregistrement.Nom_proprietaire.Value
        Range("I15").Value = Ajout_enregistrement.Nationnalite.Value
        Range("C16").Value = Ajout_enregistrement.Adresse.Value
        Range("I16").Value = Range("U65536").End(xlUp).Value

        For Each ctrl In Frame7.Controls
        If ctrl.Object.Value = True Then
             Range("D17").Value = ctrl.Object.Caption
            Exit For
        End If
        Next ctrl

        For Each ctrl In Frame6.Controls
        If ctrl.Object.Value = True Then
             Range("G17").Value = ctrl.Object.Caption
            Exit For
        End If
        Next ctrl

        Range("I17").Value = Ajout_enregistrement.ComboBox1.Value
        Range("D18").Value = Ajout_enregistrement.genre.Value
        Range("F18").Value = Ajout_enregistrement.vehicule.Value
        Range("I18").Value = Ajout_enregistrement.Immatriculation.Value
        Range("E19").Value = Ajout_enregistrement.TextBox7.Value
        Range("G19").Value = Range("V65536").End(xlUp).Value

   Loop

End Sub

merci de votre aide

Bonjour,

Dans la mesure où la source de tes données se trouve dans ton UserForm ... le plus simple est d'avoir trois sections dans ton CommandButton Ajouter ... et que chaque section stocke les données dans chacune des tes trois feuilles ...

merci James007,

je comprends pas la notion de section dans le commandBouton, eclaire moi encore stp

De rien ...

Ne te formalises pas sur le mot 'section' ...

Code, instructions, paragraphe, etc ... feront aussi bien l'affaire ...

Le principe est que le même bouton ... fait tout le boulot ...

alors c'est a ce niveau que je beugue parce que j'arrive pas a trouver le bon code, deja que le bouton a deja pleins de lignes de codes, ci dessous le code actuelle du bouton pour ajouter dans la feuille bd

Private Sub CommandButton1_Click()
Dim i As Integer
Dim ctrl As Control

    i = 2
    Do While Cells(i, 1) <> ""
        Cells(i, 1).Offset(1, 0).Select
        i = i + 1
    Loop

    ActiveCell.Value = Ajout_enregistrement.NumeroDemande.Value
    ActiveCell.Offset(0, 1).Value = Ajout_enregistrement.TextBox7.Value
    ActiveCell.Offset(0, 2).Value = Ajout_enregistrement.Nom_proprietaire.Value

    For Each ctrl In Frame8.Controls
        If ctrl.Object.Value = True Then
            ActiveCell.Offset(0, 3).Value = ctrl.Object.Caption
            Exit For
        End If
    Next ctrl

    ActiveCell.Offset(0, 4).Value = Ajout_enregistrement.Naissance.Value
    ActiveCell.Offset(0, 5).Value = Ajout_enregistrement.Lieu.Value
    ActiveCell.Offset(0, 6).Value = Ajout_enregistrement.Nationnalite.Value
    ActiveCell.Offset(0, 7).Value = Ajout_enregistrement.Adresse.Value
    ActiveCell.Offset(0, 8).Value = Ajout_enregistrement.TextBox2.Value
    ActiveCell.Offset(0, 9).Value = Ajout_enregistrement.Nom.Value
    ActiveCell.Offset(0, 10).Value = Ajout_enregistrement.Immatriculation.Value
    ActiveCell.Offset(0, 11).Value = Ajout_enregistrement.chassis.Value
    ActiveCell.Offset(0, 12).Value = Ajout_enregistrement.vehicule.Value
    ActiveCell.Offset(0, 13).Value = Ajout_enregistrement.genre.Value
    ActiveCell.Offset(0, 14).Value = Ajout_enregistrement.places.Value
    ActiveCell.Offset(0, 15).Value = Ajout_enregistrement.ptac.Value

     For Each ctrl In Frame7.Controls
        If ctrl.Object.Value = True Then
            ActiveCell.Offset(0, 16).Value = ctrl.Object.Caption
            Exit For
        End If
    Next ctrl

     For Each ctrl In Frame6.Controls
        If ctrl.Object.Value = True Then
            ActiveCell.Offset(0, 17).Value = ctrl.Object.Caption
            Exit For
        End If
    Next ctrl

    ActiveCell.Offset(0, 18).Value = Ajout_enregistrement.ComboBox1.Value

    If OptionButton11.Value = True And OptionButton9.Value = True And ComboBox1.Value = "TAXI" Then
        ActiveCell.Offset(0, 19).Value = "TPTU"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = True And ComboBox1.Value = "MINIBUS" Then
        ActiveCell.Offset(0, 19).Value = "TPMU"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = True And ComboBox1.Value = "BUS" Then
        ActiveCell.Offset(0, 19).Value = "TPBU"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = True And ComboBox1.Value = "AUTOCAR" Then
        ActiveCell.Offset(0, 19).Value = "TPAU"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = False And ComboBox1.Value = "TAXI" Then
        ActiveCell.Offset(0, 19).Value = "TPTI"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = False And ComboBox1.Value = "MINIBUS" Then
        ActiveCell.Offset(0, 19).Value = "TPMI"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = False And ComboBox1.Value = "BUS" Then
        ActiveCell.Offset(0, 19).Value = "TPBI"
    ElseIf OptionButton11.Value = True And OptionButton9.Value = False And ComboBox1.Value = "AUTOCAR" Then
        ActiveCell.Offset(0, 19).Value = "TPAI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "MOTO" Then
        ActiveCell.Offset(0, 19).Value = "TMOU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "TRICYCLES" Then
        ActiveCell.Offset(0, 19).Value = "TMYU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "TAXI" Then
        ActiveCell.Offset(0, 19).Value = "TMTU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "MINIBUS" Then
        ActiveCell.Offset(0, 19).Value = "TMMU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "UTILITAIRES" Then
        ActiveCell.Offset(0, 19).Value = "TMUU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "CAMIONNETTES" Then
        ActiveCell.Offset(0, 19).Value = "TMNU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "CAMIONS" Then
        ActiveCell.Offset(0, 19).Value = "TMCU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "TRACTEURS ROUTIERS" Then
        ActiveCell.Offset(0, 19).Value = "TMRU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = True And ComboBox1.Value = "SEMI REMORQUES" Then
        ActiveCell.Offset(0, 19).Value = "TMSU"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "TAXI" Then
        ActiveCell.Offset(0, 19).Value = "TMTI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "MINIBUS" Then
        ActiveCell.Offset(0, 19).Value = "TMMI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "UTILITAIRES" Then
        ActiveCell.Offset(0, 19).Value = "TMUI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "CAMIONNETTES" Then
        ActiveCell.Offset(0, 19).Value = "TMNI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "CAMIONS" Then
        ActiveCell.Offset(0, 19).Value = "TMCI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "TRACTEURS ROUTIERS" Then
        ActiveCell.Offset(0, 19).Value = "TMRI"
    ElseIf OptionButton11.Value = False And OptionButton9.Value = False And ComboBox1.Value = "SEMI REMORQUES" Then
        ActiveCell.Offset(0, 19).Value = "TMSI"

    Unload Ajout_enregistrement
    Ajout_enregistrement.Hide
    Sheets("Licence").Visible = xlSheetVisible
    Sheets("Licence").Select

   End If

End Sub

merci de m'aider a trouver le bon code a ajouter au bouton pour alimenter les deux autres feuilles licence et vignettes (ou on va faire simple, on alimente que la feuille licence et la feuille vignette aura des formules pour copier le contenu des cellules dans la feuille licence??)

je te joint le fichier

23licence.xlsm (100.57 Ko)

Bonjour,

Sur le principe de trois sections ... dans le même CommandButton ...

Private Sub CommandButton1_Click()
     ' Section 1 - Alimenter Feuill 1
     ' ton code # 1

     ' Section 2 - Alimenter Feuill 2
     ' ton code # 2

     ' Section 3 - Alimenter Feuill 3
     ' ton code # 3

End Sub

bonjour et merci,

je le fais et reviens vers toi. comme j'ai dis je le fais juste pour deux feuilles

Bonjour,

De rien ...

Une fois que tu as saisi le principe ... je suis sûr que tu y parviendras sans difficulté ..

super, ça marche !!!! merci beaucoup

par contre dans la feuille base de donnees contient des cellules qui ont des formules dont le remplissage se fait pas avec le formulaire (je sais si je suis assez clair) et je voudrais bien recuperer ces cellules pour les mettre dans la seconde feuille licence que je remplis

ce code ci dessous ne marche pas (je sais si c'est parcequ'il est au mauvais endroit: dans le bouton commande aussi)

Ws.Range("G19").Value = Sheets("Base_de_donnees").Range("V65536").End(xlUp).Value

merci encore James007

James007,

tu peux stp m'aider avec le sujet cité dans le message precedent. j'arrive pas atrouver le bon code

Re,

Malheureusement, je ne comprends pas le problème que tu as ... ni ... le résultat que tu voudrais ...

Peux-tu clarifier ... s'il te plait ...

le premier probleme sur le remplisage des feuilles est reglé,

maintenant je souhaite recuperer les valeurs des cellules de calcul (ne se trouvant pas sur le userform) de la feuille base de données pour la feuille Licence, mais le code ci dessous ne marche pas

Ws.Range("G19").Value = Sheets("Base_de_donnees").Range("V65536").End(xlUp).Value

Bonjour,

Avant toute chose , Félicitations pour avoir réglé le premier problème ...

Concernant le code

Ws.Range("G19").Value = Sheets("Base_de_donnees").Range("V65536").End(xlUp).Value

Je l'ai cherché dans tes macros ... sans le trouver ...donc je ne sais ... toujours pas

quand et comment quelles données doivent aller de oû à oû ...

Bonjour,

James007 a écrit :

quand et comment quelles données doivent aller de où à où ...

merveil00 a écrit :

maintenant je souhaite récuperer les valeurs des cellules de calcul (ne se trouvant pas sur le userform)

de la feuille base de données pour la feuille Licence, mais le code ci-dessous ne marche pas

ce que j'ai compris : il faut copier sur la feuille "Licence" les données de la feuille "base de données"

si elles ne se trouvent pas sur le formulaire userform ; quand ? maintenant ! pas hier, ni demain !

Cordialement

bonjour et bonne semaine a vous,

merci de votre interet,

effectivement dhany, il s'agit de prendre les valeurs des cellules de la feuille base de donnees vers la feuille licence. a difficulte c'est que la feuille base de donnees est dynamique les lignes s'ajoutent a chaque clik du bouton ajouter du formulaire.

c'est plus clair James007 ??

svp j'epuise mon delai ce soir, merci de m'aider

Rechercher des sujets similaires à "userform alimentant trois feuilles"