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

[Résolu/Fermé]
Signaler
-
 sekouausud -
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


10 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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

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é
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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

Ok, je vais essayer.
Cordialement
> sekouausud
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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.
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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.
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
Quelle est la valeur de 'cboMois' ?
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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.
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

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
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
Bonjour,

Merci pour le classeur, je te fais cela pour demain.
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

Ok, et merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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.
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
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
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 506
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.
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

Bonjour,

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

Cordialement