Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

tath132

XLDnaute Nouveau
Bonjour à tous :D


1. J’ai créé un formulaire sur VBA avec (je présente le cas exemple que j’ai joint au présent post).
- Un seul UserForm pour 2 feuilles d’un même classeur
- Et j’ai utilisé un multipage
Je me suis basée sur les codes de ce site Créer un formulaire personnalisé pour saisir des données sur Excel


2. Voici ma question/problème :

- J’entre les informations d’une nouvelles personne dans le formulaire. Ex : dans le fichier j’ai entré les informations de « Essais Martin » en lui attribuant le code 1. L’ajout/modification des données fonctionne. Chaque information est inscrite dans la feuille correspondante.

- Je ferme le fichier, ou je passe à une autre personne… et ensuite je veux revenir sur « Essais Martin »

- Alors j’ouvre de nouveau le formulaire et je sélectionne le code client 1 dans la barre déroulante qui correspond à « Essais Martin ».

- Lorsque je sélectionne 1, toutes les informations de « Essais Martin » que j’ai déjà saisi apparaissent dans mon UserForm…

- MAIS uniquement les informations qui ont été inscrite à la feuille 1.Base OR je veux aussi voir les informations que j’ai entrée sur la feuille 5.Comments, dans mon deuxième onglet de mon multipage.


3. Autre problème mais secondaire pour la ComboBox Code client:

- Si sur ma feuille, si je ne mets pas les intitulés de mon tableau à la ligne 1, mais à la ligne 10 par exemple, lorsque je lance le formulaire et je veux chercher un code client, je vais voir 9 cases blanches avant le premier code enregistré. Comment résoudre ce problème?

Je n’ai pas assez bien compris la partie du code avec les variables J et I pour pouvoir l'adapter. Je vous en serais reconnaissante si vous pouviez me donner un coup de pousse.

Encore merci d’avoir pris le temps de me lire :D
 

Pièces jointes

  • Forum-excel.xlsm
    38.1 KB · Affichages: 100
  • Forum-excel.xlsm
    38.1 KB · Affichages: 93
  • Forum-excel.xlsm
    38.1 KB · Affichages: 115

Paf

XLDnaute Barbatruc
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Bonjour

a priori en rajoutant ce code , basé sur le même principe que les autres textbox, en fin de Private Sub ComboBox1_Change() de l'USF:

Code:
TextBox44 = Worksheets("5. Comment").Range("E" & Ligne)

à adapter pour la colonne

A+
 

Paf

XLDnaute Barbatruc
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Re,

pour le second point:

Code:
    With Me.ComboBox1

        For J = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row

            .AddItem ws.Range("A" & J)

de la ligne 2 à la dernière ligne remplie, on ajoute le contenu de la colonne A dans la Combobox.

si les données commencent en ligne 5 (comme dans le classeur joint) il faudrait définir J de 5 à la dernière ligne remplie:

Code:
...

        For J = 5 To ws.Range("A" & Rows.Count).End(xlUp).Row

            ....

Mais, y a-t-il un intérêt à ne pas mettre la ligne d'intitulé en ligne1 ?

A+
 

tath132

XLDnaute Nouveau
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Bonjour Paf!

Merci beaucoup pour ta réponse! Ca fonctionne :D

Pour les lignes d'intitulé en ligne1 : mon fichier a de nombreuses feuilles et d'autres formulaires du même type. Je veux donc faciliter l'utilisation avec une barre de navigation en haut pour lancer les différents formulaires et naviguer entre les feuilles.

Encore merci :)
 
Dernière édition:

tath132

XLDnaute Nouveau
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Bonjour à tous de nouveau :)

Je reviens poser deux autres questions. Je reste sur le même sujet car les problèmes que je rencontre sont essentiellement liés au fait que j'utilise un seul userform pour plusieurs feuilles et je travaille toujours sur le même fichier (ci-joint la nouvelle version).

1 - Toujours dans la même idée que ma première question:
- j'ouvre le formulaire et j'entre les informations d'un client avec le code 1. Je remplis l'ensemble des cases (Combobox, Text et Check box).
- je ferme le fichier
- je l'ouvre de nouveau et sélectionne le code du client que je viens d'entrer, alors les informations du client 1 s'affichent. Maintenant, grace à Paf, l'ensemble des informations saisies dans les textbox s'affichent
- Mais maintenant je voudrais que la CheckBox qui a été cochée lors de la première ouverture du fichier, apparaisse comme déjà cochée à la seconde ouverture du fichier. Comment faire pour que les cases restent cochées lorsqu'elles l'ont déjà été?

2 - J'ai un problème avec le bouton modifier et les checkbox.
- Si je rempli l'ensemble des informations en une seule fois (en cochant également les checkbox), alors les informations de la checkbox apparaissent sur la même ligne que les autres.

- Mais si j'entre les informations en deux fois : création du client en cliquant sur "ajouter" puis modification du fichier en cliquant sur la checkbox et ensuite "modifier", les informations de la check-box n'apparaissent pas sur la même ligne que les autres informations qui ont été entrées la première fois.

Merci de m'avoir lu et de votre coup de pouce :)
 

Pièces jointes

  • Forum-excel.xlsm
    42.7 KB · Affichages: 104
  • Forum-excel.xlsm
    42.7 KB · Affichages: 87
  • Forum-excel.xlsm
    42.7 KB · Affichages: 162

Paf

XLDnaute Barbatruc
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Re Bonjour,

Pour le 1):

tranférer le code de Private Sub ComboBox1_Change() en Private Sub ComboBox1_Click()
et rajouter en fin
Code:
CheckBox1.Value = IIf(Worksheets("5. Comment").Range("F" & Ligne) = "X", True, False)


Pour le 2):

pour éliminer les redondances dans les codes des boutons 1 et 2 (ajout et modification) une proposition qui ne dépend que d'un seul bouton. Si le code est choisi il y a modification, s'il est saisi il y a création. La seule différence est le N° de ligne sur laquelle on va écrire ( le N° de ligne est identique en feuilles 1 et 5 )

J'ai fait le choix de mettre le code dans le bouton 1 ( renommé Enregistrer ) le bouton 2 est supprimé
Code:
Private Sub CommandButton1_Click()
 Dim Ligne As Long
 Dim Ws1 As Worksheet, Ws5 As Worksheet
 Set Ws1 = Worksheets("1. Base")
 Set Ws5 = Worksheets("5. Comment")
 
 If ComboBox1.ListIndex = -1 Then ' creation nouveau
    Ligne = Ws1.Range("A" & Rows.Count).End(xlUp).Row + 1      'Pour placer le nouvel enregistrement à la première ligne vide
    If MsgBox("Confirmez-vous l’insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d’ajout") = vbNo Then Exit Sub

 Else             ' modification existant
    Ligne = Me.ComboBox1.ListIndex + 2
    If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbNo Then Exit Sub
 End If

 'PAGE 1
 With Ws1
        '-------------------Colonnes communes--------------------------------------------
        .Cells(Ligne, "A").Value = ComboBox1.Value
        .Cells(Ligne, "B").Value = ComboBox2.Value 'Combo civilité
        .Cells(Ligne, "C").Value = TextBox1.Text 'Last name
        .Cells(Ligne, "D").Value = TextBox2.Text 'First name
        
        '--------------------Colonnes differentes------------------------------------------
        .Cells(Ligne, "E").Value = TextBox3.Text 'Yard
        .Cells(Ligne, "F").Value = TextBox4.Text 'Job
 End With
        
 'PAGE 5
 With Ws5
        '-------------------Colonnes communes--------------------------------------------
        .Cells(Ligne, "A").Value = ComboBox1.Value
        .Cells(Ligne, "B").Value = TextBox1.Text 'Last name
        .Cells(Ligne, "C").Value = TextBox2.Text 'First name
    
        '--------------------Colonnes differentes------------------------------------------
        .Cells(Ligne, "E").Value = TextBox5.Text 'commentaire

        '--------------------Check Box et date---------------------------------------------
        If CheckBox1.Value = True Then
            .Cells(Ligne, 6).Value = "X"
            .Cells(Ligne, 7).Value = Date
        End If
 End With
    
    
 Unload Me

End Sub

A+
 

tath132

XLDnaute Nouveau
Re : Problème avec formulaire sur VBA - 1 UserForm pour 2 feuilles avec un multipage

Bonjour Paf!

excuse moi de mon retour tardif, j'ai eu beaucoup de boulot et je n'ai pas pu continuer mon fichier. Je viens de le finir à l'instant grâce à ton aide. Merci!!! Est ce que je peux te demander la différence entre "change" et "click" et ce que IIf signifie? Je vais fouiller sur le net.

Encore merci de ton aide :)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla