Comment agir sur une feuille d'un classer avec une comboBox ?

Résolu/Fermé
sekouausud - 22 juil. 2016 à 11:37
 sekouausud - 26 juil. 2016 à 10:04
Bonjour,
Je souhaite avoir votre aide.
Je voudrais créer un Userform et dans ce dernier j'aimerais créer une comboBox qui contiendra les noms de feuilles précises du classeur, ainsi si on sélectionne le nom d'une feuille, (exemple : "janvier") dans la comboBox, les données saisies dans tous les champs du Userform aillent se placer au bon endroit dans la feuille appropriée, c'est à dire la feuille "janvier" pour notre exemple. Et cela pour chaque nom de feuilles qui se trouve dans la comboBox du Userform

Merci d'avance


A voir également:

10 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 juil. 2016 à 11:53
Bonjour,

Tu détermine la ligne et la colonne et ceci te permet de sauvegarder dans la bonne feuille :
    With Sheets(Me.ComboBox1)
        .Cells(ligne, colonne).Value = Me.textbox1.Value
    End With

0
Ok
Voudriez bien m'excuser ; mais comment faire pour charger les noms des feuilles
dans ma comboBox et cela sous forme de liste déroulante ?

Merci encore une fois pour votre disponibilité
0
Jusqu'à présent je suis bloqué, je ne parviens pas à monter dans la comboBox la liste déroulante des noms des différentes feuilles du classeur devant accueillir les données saisies dans les champs du UserForm.

Aidez-moi, je travail avec Excel 2007

Cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 juil. 2016 à 15:52
Bonjour,

C'est très simple, .... lorsque l'on sait ;-) ;-)
Private Sub UserForm_Initialize()
Dim feu As Integer
For feu = 1 To Sheets.Count
    Me.ComboBox1.AddItem Sheets(feu).Name
Next feu
End Sub

0
Ok, je vais essayer.
Cordialement
0
sekouausud > sekouausud
22 juil. 2016 à 18:46
Ok, c génial, ça marche pour les noms feuilles, seulement :

Encore quelques coups de pouces

1/ Excel a chargé les noms de toutes les feuilles du classeur dans la comboBox alors que je n'ai besoin que de quelques unes de mon choix ;

2/ Aussi quand je valide l'enregistrement, les données apparaissent uniquement dans le tableau principal de ma base de données et rien n'est enregistré dans les autres feuilles (de la liste déroulante de la comboBox) censées recevoir les mêmes données.

Merci, grâce à vous je suis sur le point de rendre fonctionnel mon projet de fichier.


Cordialement à vous
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 juil. 2016 à 19:09
1/tu ne fais
 Me.ComboBox1.AddItem Sheets(feu).Name
que si le nom de feuille te convient ou tu démarres au numéro de feuille
feu = ?
que tu veux.
2/ censées recevoir les mêmes données si tu écris la ligne que je t'ai mis au début.
0
Je sais que nous avons pris bcp de votre temps mais nous comptons sur votre compréhension.

Mon problème persiste, c'est peut être dû au code ci-dessous que j'ai déjà affecté à mon bouton "Ajouter" pour valider l'enregistrement et cela marche à l'exception du contenu des feuilles dont les noms sont dans la cliste déroulante de lacomboBox
Private SubbtnAjouter_clik()
Sheets("Ma base de données").Activate
Range("A1").select
selection.End(xlDwn).select
selection.offset(1, 0).select
ActiveCell=cboClasse.value [ici c'est une autre comboBox du Userform]
Activecell.offset(0,1).value=txtPrenom
Activecell.offset(0,2).value=txtNom
etc.......jusqu'au contenu de la dernière colonne
End Sub
Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2016 à 08:41
Bonjour,

Lorsque tu met du code utilise les balises pour plus de lisibilité.
Voici ton code modifié, en évitant les 'select' surtout en fonctionnant sur 2 feuilles, et en documentant chaque feuille.
Private SubbtnAjouter_clik()
Dim lg1 As Long, lg2 As Long
Dim w1 As Worksheet, w2 As Worksheet
    Set w1 = Sheets("Ma base de données")
    lg1 = w1.Cells(Rows.Count, 1).End(xlUp).Row
    Set w2 = Sheets(combobox_feuilles)  ' à modifier avec ton nom
    lg2 = w2.Cells(Rows.Count, 1).End(xlUp).Row
    w1.Cells(lg1, 1).Value = cboClasse.Value
    w2.Cells(lg2, 1).Value = cboClasse.Value
    w1.Cells(lg1, 2).Value = txtPrenom
    w2.Cells(lg2, 2).Value = txtPrenom
    w1.Cells(lg1, 3).Value = txtNom
    w2.Cells(lg2, 3).Value = txtNom
    etc
End Sub
Dupliquer les données ne me parait pas une bonne solution car il vaut mieux les filtrer lorsque l'on en as besoin que les avoir en double.
0
Ok, après avoir écrit le code modifié que vous avez bien voulu m'envoyer,

j'ai testé testé mon Userform mais j'ai reçu (après avoir clické sur le bouton "Ajouter"), le message suivant << Erreur d'exécution '13' : Incompatibilité de type>> et dans le code écrit le partie " Set w2 = Sheets(cboMois) est coloriée en jaune.

Merci encore une fois à vous
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2016 à 12:03
Quelle est la valeur de 'cboMois' ?
0
Vous voudriez bien nous excuser par rapport à notre tardive réaction ; on avais une coupure d'électricité.

La valeurs de 'cboMois' est 'Septembre', c'est le nom de la feuille que j'ai sélectionnée dans la liste déroulante 'cboMois' à partir du Userform ; d'ailleurs, au niveau du code écrit si on pointe le curseur sur 'cboMois', on voit écrit dans le ControlTipTexte 'cboMois'="Septembre".

Je ne sais si j'ai bien répondu à votre question concernant la valeur de 'cboMois' car le langage informatique ne m'est familier
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2016 à 18:51
Bonjour,

Essaie comme ceci cela devrait fonctionner :
Private Sub btnAjouter_Click()
Dim lg1 As Long, lg2 As Long
Dim w1 As Worksheet, w2 As Worksheet
    Set w1 = Sheets("Ma base de données")
    lg1 = w1.Cells(Rows.Count, 1).End(xlUp).Row + 1
    Set w2 = Sheets(cboMois.Value)
    lg2 = w2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    w1.Cells(lg1, 1).Value = cboClasse.Value
    w2.Cells(lg2, 1).Value = cboClasse.Value
    w1.Cells(lg1, 2).Value = txtPrenom.Value
    w2.Cells(lg2, 2).Value = txtPrenom.Value
    w1.Cells(lg1, 3).Value = txtNom.Value
    w2.Cells(lg2, 3).Value = txtNom.Value
End Sub
0
sekouausud > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
23 juil. 2016 à 21:18
Très bien et merci beaucoup à CCM particulièrement à vous gbinforme.

En plus que vous m'aidiez à écrire 2 codes encore pour 2 boutons à mettre sur le même userform :

1 bouton : pour une recherche dont les résultats vont apparaître dans les champs du formulaire:
1 bouton : pour faire et enregistrer des modifications. En fait je trouve que cela est nécessaire car j'ai relevé des données (en double) qui devraient être simplement modifiées en partie pour régler le problème des doublons et des erreurs éventuelles.

Merci encore, vous voyez bien que je ne suis pas prêt de vous lâcher de si tôt.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2016 à 21:39
Bonsoir,

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
0
sekouausud > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
24 juil. 2016 à 13:30
Bonjour,

Je n'arrive pas à vous envoyer mon fichier comme demandé. je ne sais pas pourquoi ?

Peux être, je m'y prends mal . Je suis sur 'joint.com' où j'ai lancé le chargement mais la page suivante ne s'ouvre pas ; non compressé mon fichier fait 42,8 ko


Merci d'avance
0
sekouausud > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
24 juil. 2016 à 14:31
Bonjour,
Finalement, j'ai réussi à télécharger le fichier et en voici le lien
http://www.cjoint.com/c/FGymwcuwoTD

Si ça marche, j'aurais à mettre dans le WorkBook 2 autres formulaires plus ou moins similaires.

Merci d'avance
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
25 juil. 2016 à 15:11
Bonjour,

Finalement je suis un peu en avance. ;-)

1 bouton : pour une recherche dont les résultats vont apparaître dans les champs du formulaire:
En fait c'est ton combobox 'aller à' qui est documenté avec ta base.
Si tu choisis la classe et/ou le mois, ils seront filtrés.
Si tu choisis un élément de 'aller à' tes saisies sont documentées et tu peux les modifier.

1 bouton : pour faire et enregistrer des modifications.
Ton bouton enregistre les modifications, même le changement de mois.
J'ai modifié la gestion du bouton ajouter qui englobe aussi modifier maintenant. Seul l'un ou l'autre ou aucun n'est disponible.

https://www.cjoint.com/c/FGzm5gdmC0l

Bon test.
0
Bonjour,

Merci d'avance

Vous vous êtes, sans doute, fait violence pour être en avance, je vous en suis reconnaissant.

Je termine quelques tâches professionnelles avant d'avoir le temps de tester le formulaire.

De toute façon, vous me permettrez certainement de revenir à vous si jamais je tombais encore sur des difficultés dans la manipulation du fichier.

Cordialement
0
Bonsoir,
J'ai testé le formulaire mais je suis confronté au problème suivant :
Pour le même élève déjà introduis dans la base de données je ne peux pas modifier pour ajouter d'autres paiements concernant les autres mois sans effacer le 1e mois accompagnant la saisie de départ.

Dans mon projet, un même élève a la possibilité de faire plusieurs paiements en des mois différents et je ne souhaiterais pas à chaque fois reprendre la saisie de toutes les données dudit élève.
Je ne sais pas si j'ai bien assez exposé ma préoccupation.

Merci, encore une fois
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
26 juil. 2016 à 08:42
Bonjour,

je ne peux pas modifier pour ajouter d'autres paiements
Ce que tu appelles une modification n'en est pas une car en fait c'est un ajout.
Il faut donc modifier la gestion des boutons ajout/modif pour permettre l'ajout.
0
sekouausud > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
26 juil. 2016 à 10:04
Bonjour,

Vous avez raison et merci pour tout ce que vous m'avez apporté jusque là

Cordialement
0