Userform à libellé variable et somme

Bonjour à tous,

Je vous sollicite une nouvelle fois pour une demande particulière.

Je cherche à générer un Userform où l'on renseignera des informations qui seront retransmises dans des cellules. Jusque là, j'ai déjà vu des réponses sur le forum.

Mais ma demande est un peu plus complète :

1. En fonction du mois de situation sélectionné sur l'onglet, les mois proposés dans le Userform changeront. Ex : Date de situation AVRIL, en s'ouvrant, le Userform informera automatiquement les mois de MAI à MARS de l'année suivante;

2. La somme des montants renseignés sera calculée automatiquement - dans le Userform - en fonction des montants renseignés - format grisé.

3. Les montants renseignés sont mis dans les cellules correspondantes sur le deuxième onglet - après validation.

4. Après validation, le Userform se vide pour renseigner à nouveau des montants si l'on veut procéder à des modifications. A chaque modification et validation, les montants dans les cellules du deuxième onglet sont modifiés.

Vous trouverez en pièce-jointe un exemple,

Je vois remercie d'avance pour votre aide,

Bien à vous,

jj93

Bonjour,

Je reviens vers vous avec un premier essai.

Le Userform s'ouvre mais je bloque sur le report des montants précisés dans les TextBox (du Userform) sur les cellules désignées.

Le code bug.

Egalement, pour le libellé variable des labels après recherches, j'ai compris qu'il fallait mettre un code sur le caption du label.

L'idée serait que si en feuille 2, en E8 est précisé "Mars", lors de l'ouverture de mon Userform, le label 1 devienne "Mars" et ainsi de suite.

Tout dépendrait alors du choix de ma date de situation à la base.

Je vous remercie par avance pour votre compréhension et coopération,

Bien à vous.

jj93

29essai-div.xlsm (24.94 Ko)
32essai-div-v1.xlsm (25.20 Ko)

Bonjour jj93, le forum,

Une idée : Pourquoi ne pas utiliser directement le formulaire ? Voir exemple ci-joint.

Cordialement,

André

Merci loursgris,

Cependant le formulaire ne marche pas... Je pense qu'il y a un problème dans le code au niveau de la définition de "L".

Je dois obligatoirement avoir le choix de choisir le mois avec le menu déroulant en feuille1.

Egalement, les labels restent avec le nom de base "Label1", 2, 3, etc.

Private Sub Valider_Click()
Dim L As Integer
    If MsgBox("Etes-vous certain de vouloir insérer les données renseignées ?", vbYesNo, "Demande de confirmation") = vbYes Then
    L = Sheets("Feuil2")
    Range("E8").Value = TextBox1
    Range("F8").Value = TextBox2
    Range("G8").Value = TextBox3
    Range("H8").Value = TextBox4
    Range("I8").Value = TextBox5
    Range("J8").Value = TextBox6
    MsgBox ("Données insérées")
    Else
    MsgBox ("Nouvelles données non intégrées")
    End If
    Unload Me
End Sub

Dans l'attente de te (et vous) lire,

Cordialement,

jj93

Bonjour

A vérifier si cela concorde à ce que tu attendais

Salut Banzai64 !

C'est exactement ça ! Il cependant deux tous petits détails qui me manque.

1. Lorsque je modifie - dans le Userform - les montants dans les TextBox, le total en bas reste figé avec la somme des anciens montants renseignés.

L'idée serait que la somme totale se calcul en même temps que j'ajoute ou modifie les montants.

2. Egalement, lorsque j'ouvre le Userform, les montants déjà renseignés à la base sont toujours dans les TextBox. N'y a t'il pas un moyen pour qu'à chaque ouverture les TextBox soient vides - seul les montants en feuille2 sont modifiés en fonction des montants renseignés à chaque validation ?

Je te remercie encore pour ce travail,

Dans l'attente de vous lire,

Bien cordialement,

jj93

Bonjour

Je ne vois pas ce que tu vas faire, mais bon j'ai modifié le code

A tester

Banzai64

Bravo, c'est exactement ça !

Merci beaucoup beaucoup !!

Excellente après-midi,

jj93

Bonsoir Banzai64 et les autres,

J'ai essayé d'adapter le code fourni mais il ne marche pas si je change "Feuil2" par "Feuil4".

Je n'arrive pas à comprendre, tout fonctionne correctement, tout est topissime mais j'aimerai appliqué le code à la feuille 4. Je ne vois pas de lien entre le code et la feuille 2, pourquoi le remplacement de 2 par 4 ne fonctionne pas?

Private Sub Valider_Click()
Dim L As Integer
    If MsgBox("Etes-vous certain de vouloir insérer les données renseignées ?", vbYesNo, "Demande de confirmation") = vbYes Then
    With Sheets("Feuil4")
...

Je vous envoi le fichier de base avec quelque modification.

Dans l'attente de vous lire, je vous remercie encore 10000000 fois

Excellente soirée...

jj93

Bonjour

Quand tu notes

With Sheets("Feuil4")

tu as une feuille nommée "Feuil4", ce qui est faux dans ton fichier

Soit tu utilises le nom

With Sheets("Prévisionnel")

soit tu utilises le CodeName

With Feuil4

Une petite simplification du code

Private Sub Valider_Click()
    If MsgBox("Etes-vous certain de vouloir insérer les données renseignées ?", vbYesNo, "Demande de confirmation") = vbYes Then
    'With Sheets("Prévisionnel")
    ' ou
    With Feuil4
      For I = 1 To 12
        .Cells(23, 4 + I) = Val(Replace(Me.Controls("TextBox" & I), ",", "."))
      Next I
    End With
      MsgBox ("Données insérées")
    Else
      MsgBox ("Nouvelles données non intégrées")
    End If
    Unload Me
End Sub
Rechercher des sujets similaires à "userform libelle variable somme"