Formulaire sur plusieurs onglets

Bonjour à tous,

Je sèche complètement... Je débute en VBA sur excel, j'essaye de me débrouiller comme je peux en péchant des infos à droite et à gauche sur les différents forums.

Dans mon tableau, ci joint, j'ai déjà programmé plusieurs macros, comme je vous le disais en pêchant des infos un peu partout donc j'ai surement des lignes inutiles dans mes macros...

Enfin bref, je sollicite votre aide ce soir je vous explique :

Mon tableau, contient 3 onglets. (Je peux en avoir jusqu'à 10 sur une année)

J'ai créé un formulaire me permettant de remplir certaines colonnes de mon tableau, mais celui agit sur un onglet à la fois.

Je voudrais, si cela est possible :

Premièrement de fixer mon formulaire sur la première feuille de mon classeur.

Ensuite, je voudrais que mon formulaire agisse sur mes différents onglets. Avec par exemple, une liste déroulante (combobox pour les intimes) afin de sélectionner l'onglet sur lequel je veux rentrer mes données. Sachant que les tableaux contenus dans mes différents onglets, sont identiques.

Et je vais abuser de votre gentillesse, mais je voudrais également que lorsque j'ajoute un nouvel onglet (comme je le disais précedemment j'en ai 3, mais je peux en avoir plus) que celui-ci s'ajoute automatiquement dans ma liste déroulante.

Voila, je ne sais pas si c'est très clair.

Mon classeur est en pièce jointe et merci par avance à ceux qui pourront m'aider.

Bonne soirée à tous

Bonjour,

Il faut que tu le mettes dans UserForm_Initialize() :

Private Sub UserForm_Initialize()
    ONGLET.Clear
    For Each ER In ThisWorkbook.Worksheets
        If ER.Name <> "vierge" Then
            ONGLET.AddItem ER.Name
        End If
    Next ER
End Sub

et que tu en tiennes compte lors de l'enregistrement avec un

With sheets(ONGLET)
  .cells(lig,col)="xxxx" ' le . devant se trouve remplacé en interne par sheets(ONGLET) du with
End with

eric

Bonjour Éric et merci pour ta réponse...

Mais mon faible niveau en VBA me joue des tours, je suis perdu.

Peux tu vérifier, sans te moquer , mon code et me dire ce qu'il ne va pas ? Merci beaucoup :

Private Sub CommandButton1_Click()

    Dim er As Worksheet
Dim dl As Integer

dl = .Range("A65000").End(xlUp).Row + 1

        'Pour placer la nouvelle ligne

        Range("A").Value = ComboBox1
        Range("B").Value = TextBox1
        Range("C").Value = TextBox2
        Range("D").Value = TextBox4
        Range("E").Value = TextBox5
        Range("F").Value = TextBox3
        Range("G").Value = TextBox6
        Range("H").Value = TextBox7
        Range("I").Value = TextBox8
        Range("J").Value = TextBox9
        Range("K").Value = TextBox10
        Range("N").Value = TextBox11
        Range("O").Value = TextBox12
        Range("T").Value = TextBox13
        Range("V").Value = TextBox14
        Range("W").Value = TextBox15

    Unload Me

End Sub

Private Sub UserForm_Initialize()
    ONGLET.Clear
    For Each er In ThisWorkbook.Worksheets
        If er.Name <> "feuil1" Then
            ONGLET.AddItem er.Name
        End If
    Next er

    With Feuil1
  Feuil1.Cells(Lig, col) = "xxxx" ' le . devant se trouve remplacé en interne par sheets(ONGLET) du with
End With
End Sub

Quand tu travailles sur les lignes As Integer est trop court (32768 max alors qu'il y a 1 million de lignes possibles)

    With Feuil1
  Feuil1.Cells(Lig, col) = "xxxx" ' le . devant se trouve remplacé en interne par sheets(ONGLET) du with
End With

n'est pas à mettre dans UserForm_Initialize

C'est un exemple bidon d'écriture de tes textbox sur la feuille. A mettre dans le code du bouton OK donc

"xxxx" étant le contenu de ton textbox, lig et col la ligne et la colonne de la feuille où tu écris cette information.

Quand tu utilises With Feuil1 tu n'as pas justement pas à le remettre à l’intérieur de la structure, le . suffit à dire que tu utilises cette feuille

D'accord merci beaucoup je vais essayer de m'en sortir.

Merci de votre aide

steven542304 a écrit :

D'accord merci beaucoup je vais essayer de m'en sortir.

Merci de votre aide

Avec 2 forums, tu devrais...

Pas sympa pour les gens qui t'aident, tu prends alors les uns et les autres pour ....

P.

Bonjour patrick,

Bien vu.

Un de plus dans la liste noire qui sera surligné sur les pages que je consulte

eric

Je ne vois vraiment pas où est le mal. Chaque membre peut m'être bénéfique dans ma recherche. Chacun à des solutions différentes, ça m'aide à mieux comprendre la VBA. La preuve ça m'a permis de résoudre mon problème.

Et je me doute bien que les visiteurs sont sensiblement les mêmes. De là, à employer le gros mot "liste noire"...

Cherche encore, j'ai posé la question sur d'autres forum encore

Bonne continuation Messieurs et merci quand même

Les helpers se lassent très vite de passer 1/2h sur un fichier ou passer du temps à rédiger une explication pour t'expliquer alors que tu avais la réponse depuis la veille ailleurs.

je suis sûr que tu changeras très vite de technique ou de pseudo.

Jaune fluo ça te plait comme couleur ?

Bon apprentissage, il y a de très bons livres.

En effet mais n'oubliez pas que qu'une réponse peut paraître claire et complète pour un utilisateur expérimenté, mais pour une personne comme moi qui débute en VBA ce n'est pas toujours facile de comprendre un langage qu'on ne maîtrise pas et de surcroît l'intégrer à son classeur.

Non en toute honnêteté j'ai autre chose à faire que de changer de pseudo où je ne sais quoi.

Utilisez la couleur que vous voulez, ça ne m'empêchera pas de dormir.

Merci quand même pour l'aide que vous m'avez apporté, et vous remercie de votre compréhension.

Bonne soirée

Steven

Bah, tu y arriveras très bien avec des livres ou les tutos du net. Ca prendra plus de semaines c'est tout.

C'est sur qu'en posant 3 questions sur un forum, (enfin plusieurs forums...) je vais devenir pro de la VBA.

Il est évident que si je veux m'améliorer, je vais utiliser de très bons livres comme vous dites.

Rechercher des sujets similaires à "formulaire onglets"