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 :

Recherche et modification dans Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut Recherche et modification dans Userform
    Bonjour à toutes et à tous,

    Grâce à l'aide précieuse de Mercatog j'ai réussi à faire une recherche dans un userform. voici le 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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    Private Sub BtnRecherche_Click()
    Dim c As Range
    Dim LastLig As Long, Lig As Long
    Dim sLigne As String
     
     'Appel de la procédure de déblocage.
        Call p_Debloque
     
     
        'Gestion de l'état des boutons.
        Call p_NewModif
     
     
     
     
    If Me.txtrecherche.Value <> "" Then
        With Sheets("liste")
            LastLig = .Cells(Rows.Count, "E").End(xlUp).Row
            Set c = .Range("E2:E" & LastLig).Find(Me.txtrecherche.Value, LookIn:=xlValues, lookat:=xlPart)
            If Not c Is Nothing Then
                Lig = c.Row 'dans Lig on a la ligne de la donnée trouvée
     
                libNave.Caption = "enregistrement : " & Lig - 1 & "/" & Lig
     
        Me.libCode.Caption = .Range("A" & Lig)
        Me.txtCreateur = .Range("B" & Lig)
        Me.txtDateCreation = .Range("D" & Lig)
        Me.cmbOriente = .Range("C" & Lig)
        Me.txtNom = .Range("E" & Lig)
        Me.txtPrenom = .Range("F" & Lig)
        Me.OptionFemme = .Range("G" & Lig)
        Me.OptionHomme = .Range("G" & Lig)
        Me.txtDateNaiss = .Range("H" & Lig)
        Me.txtAge = .Range("I" & Lig)
        Me.txtLieuNaiss = .Range("J" & Lig)
        Me.cmbNationalite = .Range("K" & Lig)
        Me.txtPays = .Range("L" & Lig)
        Me.txtNSS = .Range("M" & Lig)
        Me.CmbSituationFamille = .Range("N" & Lig)
        Me.txtMemo1 = .Range("O" & Lig)
        Me.txtNomRef = .Range("P" & Lig)
        Me.cmbOrganismeR = .Range("Q" & Lig)
        Me.txtPhone1 = .Range("R" & Lig)
        Me.txtNomRef2 = .Range("S" & Lig)
        Me.cmbOrganismeR2 = .Range("T" & Lig)
        Me.txtPhone2 = .Range("U" & Lig)
        Me.cmbRevenu = .Range("V" & Lig)
        Me.OptionOui = .Range("W" & Lig)
        Me.OptionNon = .Range("W" & Lig)
        Me.cmbdomiciliation = .Range("X" & Lig)
        Me.Txtmemo2 = .Range("Y" & Lig)
        Me.txtNomProt = .Range("Z" & Lig)
        Me.cmbOrganismeProt = .Range("AA" & Lig)
        Me.txtPhone3 = .Range("AB" & Lig)
        Me.Optiontutelle = .Range("AC" & Lig)
        Me.Optioncuratelle = .Range("AC" & Lig)
        Me.OptionMedoui = .Range("AD" & Lig)
        Me.OptionMednon = .Range("AD" & Lig)
        Me.txtmemo3 = .Range("AE" & Lig)
        Me.cmbOrientationMed = .Range("AE" & Lig)
        Me.CmbProvenance = .Range("AF" & Lig)
        Me.CmbsituationErrance = .Range("AH" & Lig)
        Me.Optionmoins1S = .Range("AI" & Lig)
        Me.Optionmoins1M = .Range("AI" & Lig)
        Me.Option1a6M = .Range("AI" & Lig)
        Me.Option6M1A = .Range("AI" & Lig)
        Me.Option1a2A = .Range("AI" & Lig)
        Me.Option2a5A = .Range("AI" & Lig)
        Me.Option5APlus = .Range("AI" & Lig)
        Me.OptionNSP = .Range("AI" & Lig)
        Me.TxtParcoursA = .Range("AJ" & Lig)
        Me.TxtObjectifEx = .Range("AK" & Lig)
        CmbPieceIdentite = .Range("AL" & Lig)
        Me.TxtDateExpi = .Range("AM" & Lig)
        Me.OptionNul = .Range("AN" & Lig)
        Me.OptionRegG = .Range("AN" & Lig)
        Me.Optioname = .Range("AN" & Lig)
        Me.OptionRien = .Range("AN" & Lig)
        Me.Optioncmuc = .Range("AO" & Lig)
        Me.OptionNC = .Range("AO" & Lig)
        Me.OptionAvert = .Range("AP" & Lig)
        Me.OptionExclu = .Range("AP" & Lig)
        Me.OptionFinSejour = .Range("AP" & Lig)
        Me.TxtMemo4 = .Range("AQ" & Lig)
        Me.CmbOrientation = .Range("AR" & Lig)
     
                        Set c = Nothing
            Else
                MsgBox Me.txtrecherche.Value & " non trouvé"
            End If
        End With
     
    Else
        MsgBox "renseignez le texte à chercher"
    End If
    End Sub
    Voici mon problème : si je cherche M. Delarue les infos de cette personne s'affichent normalement. Mais lorsque je fais une modif sur cette fiche, qui est le 3ème enregistrement,après validation les modif s'appliquent systématiquement à la première ligne. Je perds donc toujours ma premiere ligne d'enregistrement et la ligne qui doit être modifiée ne l'est pas.

    Pouvez-vous m'aider svp

    Merci d'avance et bonne journée

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu as mis le code de recherche (fonctionnel, donc inutile) et à omis mettre le code de modification (problématique, donc utile)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut Recherche et modification dans Userform
    Merci beaucoup de ta réponse.

    voici le code du bouton Modifier

    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
    Private Sub p_NewModif()
     
        'Gestion de l'état des boutons par clic sur nouveau
        'et modifier.
            BtnFirst.Enabled = False
            btnPrev.Enabled = False
            btnNext.Enabled = False
            btnLast.Enabled = False
     
            btnNouveau.Enabled = False
            btnModifier.Enabled = False
            btnValider.Enabled = True
            btnAnnuler.Enabled = True
            btnSupprimer.Enabled = False
            btnImprimer.Enabled = False
            btnFermer.Enabled = False
     
        End Sub
     
     
    Private Sub btnModifier_Click()
        'Appel de la procédure de déblocage.
        Call p_Debloque
     
        gfboModif = True
        gfboNouveau = False
     
     
        'Gestion de l'état des boutons.
        Call p_NewModif
    End Sub
    encore merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Primo, mets les balises codes dans tes posts (sélectionne ton code et signe # du forum).
    Secundo, tu as un problème quand tu transfère les données changées dans l'userform vers la feuille. c'est ça?
    Si j'ai bien compris, c'est ce code qu'il fallait voir.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Par défaut recherche et modification dans Userform
    excuse moi mais je n'ai pas compris "Primo, mets les balises codes dans tes posts (sélectionne ton code et signe # du forum)."

    j'ai bien un problème quand je transfère les données changées dans l'userform vers la feuille.

    Pour faire cela je pensais que le fait d'appeler la macro p_newmodif me permettait en cliquant sur btn rechercher d'effectuer la modif sur la ligne choisie (est-ce clair ?)


    pour info j'ai 8 boutons sur userform :
    Nouveau
    Modifier
    Valider
    Annuler
    Supprimer
    Imprimer
    Rechercher
    Fermer

    Merci

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour modifier les données, tu dois procéder comme ceci:
    1. chercher la ligne (ton code précédent)
    2. modifier les données dans ton userform
    3. envoyer les nouvelles données vers la ligne en question

    Pour cela,
    1. crée un module standard2. Efface la déclaration de Lig de ta sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub BtnRecherche_Click()
    3. Il faut créer un Sub de transfert de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets("liste")
        .Range("A" & Lig) = Me.libCode.Caption
        .Range("B" & Lig) = Me.txtCreateur
        .Range("D" & Lig) = Me.txtDateCreation
        '...etx
    End With

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/03/2010, 21h00
  2. enregistrer modifs de données dans userform
    Par Arobase72 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/12/2009, 18h18
  3. Macro "Recherche une Valeur" dans un Userform
    Par Bastien06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/09/2009, 14h43
  4. Rappel de données pour modification dans userform
    Par simonlagaffe dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 11/09/2008, 16h13
  5. [SQL] Faire une recherche plus modification dans base sql
    Par ju3979 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/08/2007, 17h26

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