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 :

Récupérer les valeurs d'une feuille dans un formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Par défaut Récupérer les valeurs d'une feuille dans un formulaire
    Bonjour tout le monde, j'ai fait ce code afin de récupérer les valeurs situées dans une feuille excel dans un formulaire pour pouvoir modifier les lignes mais je n'arrive pas. Merci de me dire ou sont elles mes erreurs .
    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
    Private Sub ComboBoxGDO_Change()
    'Dim cell As Range
    'Dim cherch As String, derlign As Long
    'derlign = Sheets("Remplissage").Range("A65536").End(xlUp).Row
    'cherch = ComboBoxGDO
    'Set cell = Sheets("Remplissage").Range("A3:AC" & derlign).Find(cherch, lookat:=xlWhole)
      'If Not cell Is Nothing Then
        'Ligne = cell.Row
        If ComboBoxGDO <> "" Then
        Ligne = ComboBoxGDO.ListIndex + 2
        TextHTA.Value = Range("A" & Ligne)
        TextNom.Value = Range("B" & Ligne)
        TextExploit.Value = Range("C" & Ligne)
        ComboBoxGDO.Value = Range("D" & Ligne)
        ComboBoxPPI.Value = Range("E" & Ligne)
        TextPoste.Value = Range("F" & Ligne).Value
        TextCommune.Value = Range("G" & Ligne).Value
        ComboBoxModèle.Value = Range("H" & Ligne)
        ComboBoxConstructeur.Value = Range("I" & Ligne)
        ComboBoxTechnologie.Value = Range("J" & Ligne)
        ComboBoxTypeILD.Value = Range("K" & Ligne)
        ComboBoxAnnéeBatterie.Value = Range("L" & Ligne)
        TextCalibrePossible.Value = Range("M" & Ligne)
        TextRéglageEffectif.Value = Range("N" & Ligne)
        TextRéglagePréconisé.Value = Range("O" & Ligne)
        ComboBoxDateControle.Value = Range("P" & Ligne)
        ComboBoxAnnéeControleValise.Value = Range("Q" & Ligne)
        TextGéocutil.Value = Range("R" & Ligne)
        TextTerrain.Value = Range("S" & Ligne)
        ComboBoxBatterie.Value = Range("T" & Ligne)
        ComboBoxPlatine.Value = Range("U" & Ligne)
        ComboBoxVoyant.Value = Range("V" & Ligne)
        ComboBoxTorres.Value = Range("W" & Ligne)
        ComboBoxModificationSchémas.Value = Range("X" & Ligne)
        TextContenuACR.Value = Range("Y" & Ligne)
        TextActionVisite.Value = Range("Z" & Ligne)
        TextActionUltérieurement.Value = Range("AA" & Ligne)
        ComboBoxSiteOpérationnel.Value = Range("AB" & Ligne)
        ComboBoxRésultat.Value = Range("AC" & Ligne)
      End If
    End Sub
    je récupère bien le champ unique grêce à la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CodeGDO = Sheets("Remplissage").Range("D3:D" & Sheets("Remplissage").Range("D" & Rows.Count).End(xlUp).Row)
    ComboBoxGDO.List() = CodeGDO
    Dites moi comment je peux récupérer la ligne associé à chaque CodeGDO .

    NB : les deux premières lignes représentent l'entête de tableau c a d que les données se trouve à partir de la ligne3

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    La valeur 0 de ComboBoxGDO.listIndex correspond à la première cellule de CodeGDO (D3)
    La valeur 1 correspond à D4 etc.
    Tu peux donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ComboBoxGDO.ListIndex > -1 Then
        Ligne = ComboBoxGDO.ListIndex + 3
    End If

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Par défaut
    Ca marche bien mais je veux modifier comboboxGDO ça m'efface les données de formulaire, est il possible de modifier aussi comboboxGDO et ne pas perdre les valeurs récupérées. Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    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
    Private Sub ComboBoxGDO_Change()
    'Dim cell As Range
    'Dim cherch As String, derlign As Long
    'derlign = Sheets("Remplissage").Range("A65536").End(xlUp).Row
    'cherch = ComboBoxGDO
    'Set cell = Sheets("Remplissage").Range("A3:AC" & derlign).Find(cherch, lookat:=xlWhole)
      'If Not cell Is Nothing Then
        'Ligne = cell.Row
        If Teste = True Then
            Teste = False
            Exit Sub
        End If
        If ComboBoxGDO <> "" Then
        Ligne = ComboBoxGDO.ListIndex + 2
        TextHTA.Value = Range("A" & Ligne)
        TextNom.Value = Range("B" & Ligne)
        TextExploit.Value = Range("C" & Ligne)
        ComboBoxGDO.Value = Range("D" & Ligne)
        ComboBoxPPI.Value = Range("E" & Ligne)
        TextPoste.Value = Range("F" & Ligne).Value
        TextCommune.Value = Range("G" & Ligne).Value
        ComboBoxModèle.Value = Range("H" & Ligne)
        ComboBoxConstructeur.Value = Range("I" & Ligne)
        ComboBoxTechnologie.Value = Range("J" & Ligne)
        ComboBoxTypeILD.Value = Range("K" & Ligne)
        ComboBoxAnnéeBatterie.Value = Range("L" & Ligne)
        TextCalibrePossible.Value = Range("M" & Ligne)
        TextRéglageEffectif.Value = Range("N" & Ligne)
        TextRéglagePréconisé.Value = Range("O" & Ligne)
        ComboBoxDateControle.Value = Range("P" & Ligne)
        ComboBoxAnnéeControleValise.Value = Range("Q" & Ligne)
        TextGéocutil.Value = Range("R" & Ligne)
        TextTerrain.Value = Range("S" & Ligne)
        ComboBoxBatterie.Value = Range("T" & Ligne)
        ComboBoxPlatine.Value = Range("U" & Ligne)
        ComboBoxVoyant.Value = Range("V" & Ligne)
        ComboBoxTorres.Value = Range("W" & Ligne)
        ComboBoxModificationSchémas.Value = Range("X" & Ligne)
        TextContenuACR.Value = Range("Y" & Ligne)
        TextActionVisite.Value = Range("Z" & Ligne)
        TextActionUltérieurement.Value = Range("AA" & Ligne)
        ComboBoxSiteOpérationnel.Value = Range("AB" & Ligne)
        ComboBoxRésultat.Value = Range("AC" & Ligne)
      End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Teste = True
    CodeGDO = Sheets("Remplissage").Range("D3:D" & Sheets("Remplissage").Range("D" & Rows.Count).End(xlUp).Row)
    ComboBoxGDO.List() = CodeGDO
    En tête d'un module standard, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Teste As Boolean

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Par défaut
    J'ai bien fait ce que vous m'avez demandé et ça marche pas toujours , je vous joint le fichier si vous pouvez jeter un coup d'oeil pourquoi ça fonctionne pas
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Si tu donnais plus de détails ? Où se trouvent les codes concernés ? Rattachés à quel userform ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/04/2010, 16h49
  2. Réponses: 3
    Dernier message: 26/11/2009, 13h34
  3. [MySQL] Récupérer les valeurs d'une table dans un tableau
    Par bachboucha dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/06/2009, 09h50
  4. Réponses: 3
    Dernier message: 13/03/2009, 15h20
  5. Copier les valeurs d'une feuille dans une nouvelle feuille en VBA
    Par muska78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 10h44

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