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 :

valeur des plages correspondantes aux valeurs textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut valeur des plages correspondantes aux valeurs textbox
    bonjour à tous...
    j'ai créé un code pour modifier mes données dans un tableau. le code fonctionne correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If Usf.ligne <> "" Then
            Yligne = .Range("B" & Rows.Count).End(xlUp).Row
                Valeur = Usf.ligne
                Set Plage = .Range("B2:B" & Yligne)
                For Each Cell In Plage
                    If Cell.Value = Valeur Then
                    .Range("A" & Cell.Row).Value = Usf.T_nom1
                    .Range("B" & Cell.Row).Value = Usf.T_pre1
    next Cell
    end if
    (j'ai réduit le code pour une meilleure lecture). les Usf correspond aux appels du code dans un autre module.
    voici ma préoccupation: lorsque les noms sont identiques dans le tableau, première colonne(mais de prénoms différents), au lieu qu'il modifie le nom désigné, il modifie tous ceux qui ont le même nom mais de prénoms différents.

    ma démarche: je souhaite faire une boucle qui me permettrait de vérifier si correspond aux différentes valeurs des textbox et combobox dans le frame1 alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .Range("A" & Cell.Row).Value = Usf.T_nom1
                    .Range("B" & Cell.Row).Value = Usf.T_pre1
    next Cell
    end if
    .
    j'espère que vous comprendriez. merci

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Mr l'Ashanti, bonjour le forum,

    À vrai dire on ne comprend pas grand chose à ton code car il manque un With... End With et un End IF dans celui-ci... Alors à tout hasard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If Usf.ligne <> "" Then
        Yligne = .Range("B" & Rows.Count).End(xlUp).Row
        Valeur = Usf.ligne
        valeur2 = Usf.T_pre1
        Set Plage = .Range("B2:B" & Yligne)
        For Each cell In Plage
            If cell.Value = Valeur And cell.Offset(0, 1).Value = valeur2 Then
                .Range("A" & cell.Row).Value = Usf.T_nom1
                .Range("B" & cell.Row).Value = Usf.T_pre1
            End If
        Next cell
    End If

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour augmenter les chances de réponse correcte, et éviter les réponses au hasard (bonjour Thautheme),
    il faut toujours fournir l'intégralité du code concerné par le problème.
    Ce code peut-être simplifié pour cibler le problème mais il doit être complet.
    Quelques bribes de codes ne permettent pas d'appréhender le contexte et encore moins le problème !

  4. #4
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Bonjour Patrice, bonjour Thauthème...
    je joins le code complet sans les Usf.
    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
    Private Sub BT_modif1_Click()
    Dim Yligne as long: Dim Valeur as String
    Dim Cell as Range: Dim Plage as Range
     
    With Sheets("Base")
        Yligne = .Range("B" & Rows.Count).End(xlUp).Row
        Valeur = ligne
         Set Plage = .Range("B2:B" & Yligne)
         For Each Cell In Plage
            If Cell.Value = Valeur Then
            .Range("A" & Cell.Row).Value = T_nom1 'enregistrement des données dans le tableau physique
            .Range("B" & Cell.Row).Value = T_pre1
            .Range("C" & Cell.Row).Value = T_mat1
            .Range("D" & Cell.Row).Value = T_codi1
            .Range("E" & Cell.Row).Value = T_date1
            .Range("F" & Cell.Row).Value = T_lieu1
            .Range("G" & Cell.Row).Value = C_emploi1
            .Range("H" & Cell.Row).Value = C_fction1
            .Range("I" & Cell.Row).Value = C_genre1
            .Range("j" & Cell.Row).Value = T_dren1
            .Range("k" & Cell.Row).Value = T_date_iep1
            .Range("l" & Cell.Row).Value = T_post1
            .Range("m" & Cell.Row).Value = T_fp1
            .Range("n" & Cell.Row).Value = T_ecole1
            .Range("o" & Cell.Row).Value = C_classe1
            .Range("p" & Cell.Row).Value = T_num1
            .Range("q" & Cell.Row).Value = T_mail1
            .Range("r" & Cell.Row).Value = T_iep1
            .Range("s" & Cell.Row).Value = T_code_iep1
            .Range("t" & Cell.Row).Value = C_secteur1
            End If
        Next Cell
    End With
    End Sub

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour identifier un individu avec certitude, il faut utiliser un identificateur unique (Id.) dans une colonne de la base de données.
    En France c'est le NNI (numéro national d'identité = n° de sécu.).
    Selon le cas, il est possible de générer un pseudo Id en concaténant plusieurs infos, par exemple date de naissance, nom et prénom

  6. #6
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Merci Patrice pour votre aide... J'ai finalement opté pour votre méthode ( récupération des id). Dans ce cas je récupère le numéro de la ligne dans un Textbox en utilisant la fonction"=ligne() dans une colonne du tableau.
    J'aimerais savoir :
    Y a t'il une autre manière de récupérer le numéro de la ligne dans un textbox sans passer par la fonction ligne dans la feuille excel ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2016, 10h08
  2. Réponses: 1
    Dernier message: 14/06/2013, 00h07
  3. [XL-2003] classer valeurs dans des plages spécifiques
    Par frag132 dans le forum Excel
    Réponses: 0
    Dernier message: 09/08/2012, 10h21
  4. Grouper des plages de valeurs
    Par MetalGeek dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 05/05/2010, 11h40
  5. [MySQL] Listes n'affichant pas toujours exactement les valeurs correspondantes aux enregistre
    Par eddycool dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/05/2009, 17h25

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