Comment agir sur une feuille d'un classer avec une comboBox ?
Résolu
sekouausud
-
sekouausud -
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
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:
- Comment agir sur une feuille d'un classer avec une comboBox ?
- Comment supprimer une feuille sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Bruler une feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
10 réponses
Bonjour,
Tu détermine la ligne et la colonne et ceci te permet de sauvegarder dans la bonne feuille :
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
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
Aidez-moi, je travail avec Excel 2007
Cordialement
Bonjour,
C'est très simple, .... lorsque l'on sait ;-) ;-)
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, 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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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 SubDupliquer 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
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
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
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
Bonjour,
Essaie comme ceci cela devrait fonctionner :
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
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.
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.
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.
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.
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.
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
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
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
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é