IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

button modifier userform [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Par défaut button modifier userform
    salut

    je suis entrain de concevoir une petit application de gestion parc auto et voila que depuis 3 jours je suis bloque en effet voici mon problème:

    button modifier

    j ai fais un userform en multipage les étapes de remplissage et suppression saisie impeccable sauf pour modifier une saisie je bloque..je veux que quand je clique sur
    un nom depuis une liste box que les information soit afficher dans leur case pour pouvoir modifier ces infos..

    voici le code que j’utilise pour saisie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
       Private Sub cmdConfirm_Click()
     
    Dim no_ligne As Integer: no_ligne = 6
     
      With ThisWorkbook.Worksheets("personel")
     
    range("b6").Value = (txtName & "  " & txtFirstName)
    range("c6").Value = TextBox1
    range("d6").Value = TextBox11
    range("e6").Value = txtAddress
     
    End With
     
    Rows("6:6").Select
    Selection.Insert Shift:=xlUp, CopyOrigin:=xlFormatFromLeftOrAbove
     
    erreur = MsgBox("Votre saisie a été enregistrée", vbOKOnly, "saisie enregistrée")
     
     
      Call vider_zones
     
    End Sub
    ainsi pour l'intialisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub UserForm_Initialize()
     
        MultiPage1.Value = 0
        MultiPage1.personel.Visible = True
        MultiPage1.Moyenroulant.Visible = True
        MultiPage1.entretien.Visible = True
     
        ListBox2.RowSource = "personel!b6:b30"
     
    End Sub

    je sais pas si je peux joindre mon fichier ou non bref si quel qu' un peut m'aider je serais reconnaissant merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par FouzYYY Voir le message
    Bonjour,

    A tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub cmdConfirm_Click()
     
    Dim No_Ligne As Integer
     
        No_Ligne = 6 + ListBox2.ListIndex
     
        With ThisWorkbook.Worksheets("personel").Range("B" & No_Ligne)
     
             .Value = (txtName & "  " & txtFirstName)
             .Offset(0, 1) = TextBox1
             .Offset(0, 2) = TextBox11
             .Offset(0, 3) = txtAddress
     
       End With
     
    ' Pourquoi insérer, alors que vous modifiez une ligne
    'Rows("6:6").Select
    'Selection.Insert Shift:=xlUp, CopyOrigin:=xlFormatFromLeftOrAbove
     
       MsgBox "Votre saisie a été enregistrée.", vbInformation, "Mise à jour de la ligne " & No_Ligne
    'erreur = MsgBox("Votre saisie a été enregistrée", vbOKOnly, "saisie enregistrée")
     
       vider_zones
     
      'Call vider_zones
     
    End Sub

  3. #3
    Membre averti Avatar de jonathan.chaf
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut listbox
    Bonjour,
    Vous dites que lorsque vous voulez cliquer sur la listbox que ça rempli des textbox puis valider avec un bouton pour reinjecter les valeur dans excel si j'ai bien compris.
    Par contre vous n'avez pas mis la fonction Listox1_Click

    pour un exmple de ce type avec une gestion clients avec recherche nouveau et modification comme sur cette image :
    Nom : gestion clients.PNG
Affichages : 692
Taille : 19,1 Ko

    le code de remplissage en fonction de ma liste box est plus complexe car ma listbox est filtré et je dois recuperer l'adresse pour la réinjecter par dessus.
    de plus je n'utilise jamais les reference des cellule vu que je fais un tableau nommé j'en profite d'utiliser son nom ce qui me permet de pouvoir rejouter des colonnes sans devoir retapper tout mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Private Sub BT_Modifier_Click()
        'modifier les infos de l'agent
        Dim Localise As String
     
        Sheets("BD_Clients").Select
        'regarde ou est situer le clients choisi
        Localise = Sheets("BD_Clients").Cells.Find(ListBox1, LookAt:=xlWhole).Address
     
          If Me.TextBox3.Text = "" Then
        'nous allons procéder à la vérification des données du formulaire
        MsgBox "La saisie du Nom est obligatoire" & Chr(10) & "L'opération est annulée"
        Me.TextBox3.SetFocus
        Exit Sub
      End If
      'controle ville
      If Me.TextBox7.Text = "" Then
        MsgBox "La saisie de la ville est obligatoire" & Chr(10) & "L'opération est annulée"
        Me.TextBox7.SetFocus
        Exit Sub
      End If
      'controle adresse
      If Me.TextBox5.Text = "" Then
        MsgBox "La saisie de l'adresse est obligatoire" & Chr(10) & "L'opération est annulée"
        Me.TextBox5.SetFocus
        Exit Sub
      End If
     
       ListBox1.RowSource = ""
     
      'modifie case valeur
        TextBox7 = Trim(TextBox7) 'supprime espace devant derriere
        TextBox7 = UCase(TextBox7)
        TextBox3 = Trim(TextBox3) 'nom entreprise
        TextBox3 = UCase(TextBox3)
     
    'remplace les informations dans la ligne
     
        Cells(Range(Localise).Row, Range("TBL_Clients[[Nom Entreprise]]").Column) = Me.TextBox3.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Contact]]").Column) = Me.TextBox4.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Adresse]]").Column) = Me.TextBox5.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[CP]]").Column) = Me.TextBox6.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Ville]]").Column) = Me.TextBox7.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Téléphone]]").Column) = Me.TextBox8.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Mail]]").Column) = Me.TextBox9.Text
        Cells(Range(Localise).Row, Range("TBL_Clients[[Distance]]").Column) = Me.TextBox10.Text
     
    MsgBox "Les modifications ont été Apportées"
     
     
     
    'on réinitialise la listebox
        Me.ListBox1.Clear
     
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Par défaut
    salut

    @Eric KERGRESSE ....merci pour le code mais je l'ai tester hélas il n'a pas marcher votre ne réinjecte pas les infos dans le formulaire pour pouvoir les modifier

    @ jonathan.chaf idem monsieur pour code me fourni une erreur lier cell range....

    peut etre que j ai pas pas explique ou ca coince pour moi... ben tt simplement je veux que quand je clicke sur un nom lister dans la listebox que ces infos soit injecter dans le formulaire de saisie pour modifier une partie ou au complet les infos

    veuillez trouver ci joint mon fichier pour bien comprendre ce que je voulais dire....


    merci les gars si gentil de votre part.....
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti Avatar de jonathan.chaf
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut attention a l'architacture
    En voyant le fichier je comprend mieux.
    J'ai ajouter ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ListBox2_Click()
    txtName = Me.ListBox2.Column(0)
     txtFirstName = Me.ListBox2.Column(1)
    txtAddress = Me.ListBox2.Column(2)
    TextBox1 = Me.ListBox2.Column(3)
     
     
     
    End Sub
    Bien sur ca ne fait pas exactement le remplissage des texte box car vous avez fait l'erreur de fusionner deux imformation dans une seul case pourquoi?
    Une info = une colonne sinon c'est difficilement recuperable.
    De plus j'ai modifier la liste box afin d'avoir 4 colonne et a l'initiatiosation de la listbox je prends du coup de ListBox2.RowSource = "personel!b6:E30"

    IL est possible de cacher les informations si on ne veux pas les voir en indiquand dans les propriétés de la liste box.

    Nom : Capture.PNG
Affichages : 580
Taille : 5,2 Ko

    Après je vous conseil de créer un tableau automatique et dans l'initialisation d'appeller les valeurs du tableau et non d'une plage de valeur plus pérenne comme solution.

    exemple de remplissage d'une liste box avec condition en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        'Décalaration des variables
        Dim Critere
        Dim Derniereligne As Integer, X As Integer
     
         'On efface le contenu de la liste à chaque recherche.
        ListBox1.Clear
     
     
        'Affectation des variables
        Critere = 1
     
      'Trouve le nombre de ligne remplie (nbr de ligne de la base de données de la colonne Code + numero de ligne du titre de la base de donnée)
             Sheets("BD_Agent").Select
             Derniereligne = Range("TB_AGENT[[Pour liste]]").Column
             Derniereligne = Columns(Derniereligne).Find("*", , , , xlByColumns, xlPrevious).Row
     
     
     
        'On parcours la source de données de la ligne à la dernière ligne
        For X = 1 To Derniereligne
            'On teste le critère, ici le contenu de M4 avec la source de données.
            If Cells(X, Range("TB_AGENT[[En poste]]").Column) = Critere Then
            If Cells(X, Range("TB_AGENT[[En ronde]]").Column) = "" Then
                'On ecrit dans la listbox
                Me.ListBox1.AddItem Cells(X, Range("TB_AGENT[[Pour liste]]").Column)
     
            End If
            End If
        Next X
    Voila.



    Jonathan
    Platon Formation
    Fichiers attachés Fichiers attachés

  6. #6
    Membre habitué
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Par défaut
    merci je vais régler ce formulaire ,maintenant je comprend bien le principe

    merci infiniment jonathan.chaf pour votre aide tres precieuse


    comme ce poste est résolu....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] probleme option button dans userform
    Par cbredeche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2016, 13h42
  2. Command Button dans userform
    Par jesspaire dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/10/2010, 23h53
  3. Modifier le titre d'un userForm
    Par laurentabj dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/07/2007, 10h58
  4. [WebForms][CSS] asp:button non modifié
    Par Monstros Velu dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/04/2006, 11h57
  5. [VBA-E] modifier une userform
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 57
    Dernier message: 10/04/2006, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo