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 :

Bouton radio qui remplit une zone de liste


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Points : 75
    Points
    75
    Par défaut Bouton radio qui remplit une zone de liste
    Bonjour, j'ai un petit programme a faire en vba, qui contient plusieurs imports différents suivant différents criteres. J'ai du mal pour l'un d'eux.
    J'ai une feuille excel, ou je peut selectionner différents bouton radio puis un bouton 'ok' qui va lancer la procedure en fionction du bouton choisit. J'aimerais que pour l'un d'eux, lorsque je click sur ce bouton radio, il me remplisse une zone de liste deroulante avec les informations contenues dans un fichier texte que l'on aurrat demander de choisir.
    Voici mon code actuel :
    Code vba : 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
    Dim LeFichierAOuvrir As String
    Public Sub OuvrirJournaux()
    Dim nomfeuille As String, Ligne As String, fichier1 As String, texte As String, _
    tableau() As String, i As Long, n As Long, compteur As Long, a As Range, x As Long, dl As Long, ir As Integer, _
    firstaddress As String, nomfeuille1 As String, nomfeuille2 As String, irow As Integer, nomfichier As String
        'On Error GoTo GestionErreur1
    ouvert = 0
       Workbooks.OpenText Filename:=LeFichierAOuvrir, Origin:=xlWindows, StartRow _
            :=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(3, 2), Array( _
            6, 2), Array(9, 2), Array(44, 2), Array(47, 2), Array(50, 2), Array(53, 2), Array(70, 2), _
            Array(73, 2), Array(76, 2), Array(276, 2), Array(476, 2), Array(493, 2), Array(494, 2), _
            Array(495, 2), Array(512, 2), Array(513, 2), Array(514, 2))
    ouvert = 1  'si le fichier est ouvert sous forme de classeur XLS
        Set NomDuFichierOuvert = ActiveWorkbook
        nomfichier = ActiveWorkbook.Name
        'enregistrement du nom de la feuille active dans une variable
        nomfeuille = ActiveSheet.Name
        'recherche de la valeur 'CAE' dans la colonne 'b'
        With Sheets(nomfeuille)
            dl = .Range("b" & Rows.Count).End(xlUp).Row
            Set a = .Range("B1:B" & dl).Find("JAL")
            'Emepeche le rafraichissement de l'écran, pour ne pas voir le traitement
            Application.ScreenUpdating = False
            If Not a Is Nothing Then
                'création d'une nouvelle feuille et on l'a renomme
                Sheets.Add After:=Worksheets(Worksheets.Count)
                ActiveSheet.Name = "Journaux"
                Sheets(nomfeuille).Select
                firstaddress = a.Address
                irow = 0
                'copie des lignes concerner
                Do While Not a Is Nothing
                    irow = irow + 1
                    Sheets("Journaux").Cells(irow, 1).Columns("A:BP").Value = a.EntireRow.Value
                    Set a = .Range("B" & a.Row, "B" & dl).Find("JAL")
                    If a.Address = firstaddress Then
                      Exit Do
                    End If
                    If a Is Nothing Then
                        Exit Do
                    End If
                    firstaddress = a.Address
                 Loop
            End If
            Sheets("Journaux").Select
            Call LigneChampsJnal
        End With
        'copie de la feuille du nouveau classeur dans l'ancien et suppresion du nouveau
        Application.DisplayAlerts = False
        Sheets("Journaux").Select
        Sheets("Journaux").Copy After:=Workbooks("Essai.xls").Sheets(1)
        Windows(nomfichier).Close
        Windows("Essai.xls").Activate
        Application.DisplayAlerts = True
        Exit Sub
    End Sub
    Public Sub ImporterJnal()
        Application.ScreenUpdating = False
        LeFichierAOuvrir = Application.GetOpenFilename(Title:="Nom du fichier PGI à ouvrir")
        If LeFichierAOuvrir <> "Faux" Then
                OuvrirJournaux
        End If
       Application.ScreenUpdating = True
    End Sub

    Pour le moment, ce code me demande de choisir quel fichier importer et m'importe toutes les informations de ce document, mais j'aimerais que lorsque je click sur mon bouton 'ratio', ma zone de liste deroulante, ce remplisse avec les différentes informations contenues dans la colonne 'c'.
    Voila mon probleme, si je n'ai pas été assez clair dans mon explication demandez moi.
    Merci d'avance.

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    un exemple pour obtenir une liste déroulante dans B1 basée sur colonne C :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With Range("B1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=$C:$C"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/07/2008, 16h51
  2. Pb avec liste déroulante qui alimente une zone de liste
    Par Tequila_PF dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/06/2008, 09h04
  3. Réponses: 4
    Dernier message: 12/06/2006, 10h09
  4. Tri d'une zone de liste par bouton
    Par illight dans le forum Access
    Réponses: 7
    Dernier message: 09/11/2005, 19h39
  5. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25

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