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 :

[Excel] Basuler les informations d'une listBox vers une feuille Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut [Excel] Basuler les informations d'une listBox vers une feuille Excel
    Coucou, voici une question qu'elle est bonne.

    J'ai dans un form, une liste box qui contient du texte.
    exemple :
    M571;L405
    M666;R888
    865;586
    512000;480000

    J'aimerais proposer à l'utilisateur de sauvegarder en mémoire cette liste.
    En fait, tout ce qui est dans cette liste est copié dans une feuille "Memory" de ce même classeur.

    Est-ce possible?

    Eventuellement de restaurer ces infos dans la listeBox

    Au mieux les digits avant le « ; » dans la colonne A, le « ; » dans la colonne B et les digits après le « ; » dans la colonne C.

    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  2. #2
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    Pour transférer par exemple les lignes sélectionnées de ta listbox, tu peux faire un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To UserForm1.ListBox1.ListCount - 1
        If UserForm1.ListBox1.Selected(i) = True Then
            Worksheets("memory").Cells(i + 1, 1).Value = UserForm1.ListBox1.List
        End If
    Next
    En gros tel que c'est là ça te recopie les valeurs sélectionnées à la ligne correspondante sur la feuille memory
    Mais bon ptêt je répond à côté de la plaque

  3. #3
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bon j'ai pas mal avancé

    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
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 1
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                'Inscrire le contenu d'une listbox dans la feuille 1 d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    Merci pour l'info cwain

    Alors, il me reste à trier les infos :

    Au mieux les digits avant le « ; » dans la colonne A, le « ; » dans la colonne B et les digits après le « ; » dans la colonne C.
    Bon, il faut que je creuse.

    Puis ben il faut que je fasse le chemin inverse avec un bouton "récupération"

    Ya du boulot

    Bien à vous.
    Paloma
    Cordialement,
    Paloma



    Pensez au

  4. #4
    Membre habitué Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Points : 181
    Points
    181
    Par défaut
    dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Load()
    For i = 1 To 5
        UserForm1.ListBox1.AddItem Worksheets("memory").Cells(i , 1).Value
    Next
    End Sub
    voilà en gros
    Pour le multicolonne je connais pas trop...

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour creuser il me semble que tu as déjà l'outil ..:

    I-I. Scinder une chaîne

  6. #6
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bon voici le résultat de mes recherches.

    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
    Private Sub ButRestore_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'activer la feuille "Memory" à la ligne 1 -----------------------------------
                Sheets("Memory").Activate
                LigneExcel = 1
     
                'Inscrire le contenu d'une feuille Excel dans une listeBox
    suite:
                LigneExcel = LigneExcel + 1
     
                Ligne = Sheets("Memory").Cells(LigneExcel, 1)
     
                If Ligne = "" Then
                    If LigneExcel = 2 And Ligne = "" Then
                        MsgBox " Not Data saved ", vbCritical, "Caution"
                    Else
                        MsgBox " All entries has updated", vbInformation, "Congratulation!"
                    End If
     
                Exit Sub
                Else
                ListBoxFilters.AddItem (Ligne)
                GoTo suite
                End If
     
    End Sub
     
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    Tout fonctionne !


    Merci bbil je pensais bien revenir ici http://silkyroad.developpez.com/VBA/...racteres/#LI-I

    Je regarde ça, je modifie et je poste si tout va bien

    @ plus

    Paloma
    Cordialement,
    Paloma



    Pensez au

  7. #7
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut :New:New:New:New:New:New:New:New:New:New
    Bon voilà j'ai une nouvelle Question.

    J'avoue que même avec http://silkyroad.developpez.com/VBA/...racteres/#LI-I je ne sais pas comment m'y prendre...

    Ma feuille Memory me sert un peu à tout.
    Sauvegarde des filtres, du chemin de travail "browser" ...

    Donc j'aimerais faire ça sans rien Cassé.

    Comment puis-je facilement modifier mon code pour scinder ma chaîne de caractère et les placer au bon endroit de mon tableau ?
    Comment faire le chemin inverse?

    Sauvegarde des filtres dans "Memory" :

    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
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                With Worksheets("Memory").Cells.ClearContents
                End With
     
                ' Initialisation des entêtes de colonnes - les manipulations de données se faisant à partir de la ligne 2 ---
                    Dim wksDest As Worksheet
                    Set wksDest = Worksheets("Memory")
     
                    wksDest.Cells(1, 1) = "Filter (In Values)"
                    wksDest.Cells(1, 2) = "Separator"
                    wksDest.Cells(1, 3) = "Filter (OUT Values)"
                    wksDest.Cells(1, 4) = "Reference Work Path"
                    wksDest.Cells(2, 4) = TxtJobDirectory
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    Récupération des Filtres dans ma liste box à partir de "Memory" :

    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 ButRestore_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
                ListBoxFilters.Clear
     
                'activer la feuille "Memory" à la ligne 1 -----------------------------------
                'Sheets("Memory").Activate
                LigneExcel = 1
     
                'Inscrire le contenu d'une feuille Excel dans une listeBox
    suite:
                LigneExcel = LigneExcel + 1
     
                Ligne = Sheets("Memory").Cells(LigneExcel, 1)
     
                If Ligne = "" Then
                    If LigneExcel = 2 And Ligne = "" Then
                        MsgBox " Not Data saved ", vbCritical, "Caution"
                    Else
                        ButGenerate.Visible = True
                        MsgBox " All entries has updated", vbInformation, "Congratulation!"
                    End If
     
                Exit Sub
                Else
                ListBoxFilters.AddItem (Ligne)
                GoTo suite
                End If
     
    End Sub
    Merci pour le coup de main
    Bien à vous.
    Paloma
    Cordialement,
    Paloma



    Pensez au

  8. #8
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Puis-je?
    Est-il possible de créer un tableau à une dimention en récupérant ligne par ligne le contenu de la listBox et en la scindant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim tabValue(3) As string
     
    tabValue(1) = 'M571
    tabValue(2) = ' ;
    tabValue(3) = 'L456
    et faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With ActiveWorkbook.Worksheets("Memory")
                  .Cells(2, 1) = tabValue(1),
                  .Cells(2, 2) = tabValue(2),
                  .Cells(2, 3) = tabValue(3)
                  LigneExcel = LigneExcel + 1
                End With
    ..
    Un truc du genre ...

    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bbil
    pour creuser il me semble que tu as déjà l'outil ..:

    I-I. Scinder une chaîne

  10. #10
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Nan c'est po ce que je veux dire ...
    Merci bbil mais regarde :

    Paloma a écrit:

    J'avoue que même avec http://silkyroad.developpez.com/VBA/...racteres/#LI-I je ne sais pas comment m'y prendre...
    ce qui veut dire qu'il à déjà fait le tour et comme dans son code il récupère déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Extraction de la chaine de caractère jusqu'au ";" ---------------------------------------------------
     
                Dim strOldChar As String
                Dim intPosition As Integer
                intPosition = InStr(1, strValue, ";") - 1
                strOldChar = Left(strValue, intPosition)
    pour le separateur ";" ben il suffit de l'ajouter tout simplement à cahque ligne dans Excel,

    et enfin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        'Extraction après le ";" ----------------------------------------------------------
     
                Dim strNewCharChar As String
                'Dim intPosition As Integer
                intPosition = InStr(1, strValue, ";")+1
                strNewCharChar = Mid(strValue, intPosition)
    Non, ce qui me gène c'est comment adapter :

    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
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                With Worksheets("Memory").Cells.ClearContents
                End With
     
                ' Initialisation des entêtes de colonnes - les manipulations de données se faisant à partir de la ligne 2 ---
                    Dim wksDest As Worksheet
                    Set wksDest = Worksheets("Memory")
     
                    wksDest.Cells(1, 1) = "Filter (In Values)"
                    wksDest.Cells(1, 2) = "Separator"
                    wksDest.Cells(1, 3) = "Filter (OUT Values)"
                    wksDest.Cells(1, 4) = "Reference Work Path"
                    wksDest.Cells(2, 4) = TxtJobDirectory
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    avec ce que j'ai plus haut ?

    j'ai un peu de mal avec les tableaux, enfin c'est pas pour les déclarer mais plutôt savoir si j'ai le droit de faire ça ou ça ...


    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bon j'ai pas relu ton code ( il y en as trop ) .. .

    mon lien ne "pointé' t'il pas sur la fonction split ( en tout cas sur firefox.. oui ..)

    voila essai de comprendre celui-la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Sub TstPaloma()
    Dim st As String
    Dim tb
    Dim i As Integer
     st = "123;456;789;0"
     tb = Split(st, ";")
     For i = 0 To UBound(tb)
       Debug.Print tb(i)
     Next
     
    End Sub

  12. #12
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Merci bbil
    Ok merci beaucoup ;-)

    je crois avoir compris mais j'ai un message d'erreur :

    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
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'Récupération des informations à palcer --------------------------------------
                Dim st As String
                Dim tb
                Dim i As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                With Worksheets("Memory").Cells.ClearContents
                End With
     
                ' Initialisation des entêtes de colonnes - les manipulations de données se faisant à partir de la ligne 2 ---
                    Dim wksDest As Worksheet
                    Set wksDest = Worksheets("Memory")
     
                    wksDest.Cells(1, 1) = "Filter (In Values)"
                    wksDest.Cells(1, 2) = "Separator"
                    wksDest.Cells(1, 3) = "Filter (OUT Values)"
                    wksDest.Cells(1, 4) = "Reference Work Path"
                    wksDest.Cells(2, 4) = TxtJobDirectory
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                 st = ListBoxFilters.List(compt)
                 tb = Split(st, ";")
                 'For i = 0 To UBound(tb)
                   Debug.Print tb(i)
                 'Next i
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  '.Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  .Cells(LigneExcel, 1) = tb(1)
     
                With ActiveWorkbook.Worksheets("Memory").Cells(LigneExcel, 2) = ";"
                With ActiveWorkbook.Worksheets("Memory")
                  '.Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  .Cells(LigneExcel, 3) = tb(2)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    il me retourne comme message à la compilation :
    Next sans For

    Que se passe-t-il?

    Paloma
    Cordialement,
    Paloma



    Pensez au

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Yop !

    On dirait qu'il manque 2 --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Pffiiii

    Exact Jipété, je fatigue.

    Je suis allez voir Florence FORESTI hier soir et avec les cours du soir au CNAM en général le jeudi je suis pas mal fatigué ;-)

    Merci
    Paloma
    Cordialement,
    Paloma



    Pensez au

  15. #15
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Florence FORESTI
    C'est qui, ça ?

    Pense au "Résolu"
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #16
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Ben alors, faut allez la voir ....

    http://www.florenceforesti.com/

    @ plus
    Cordialement,
    Paloma



    Pensez au

  17. #17
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Vu, merci, par contre, ça,
    Pense au "Résolu"
    tu l'as zappé...
    --
    Jean-Pierre
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  18. #18
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Non je ne l'ai pas zappé :-)
    En fait je suis toujours plus ou moins au même point.

    voilà ce que j'ai mais je n'arrive pas a finir le code pour placer correctement les valeurs

    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
    Private Sub ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'Récupération dans un tableau les informations à placer --------------------------------------
                Dim st As String
                Dim tb(1) As String
                Dim i As Integer
     
                'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                With Worksheets("Memory").Cells.ClearContents
                End With
     
                ' Initialisation des entêtes de colonnes - les manipulations de données se faisant à partir de la ligne 2 ---
                    Dim wksDest As Worksheet
                    Set wksDest = Worksheets("Memory")
     
                    wksDest.Cells(1, 1) = "Filter (In Values)"
                    wksDest.Cells(1, 2) = "Separator"
                    wksDest.Cells(1, 3) = "Filter (OUT Values)"
                    wksDest.Cells(1, 4) = "Reference Work Path"
                    wksDest.Cells(2, 4) = TxtJobDirectory
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                 st = ListBoxFilters.List(compt)
                 tb(i) = CStr(Split(st, ";"))
                 For i = 0 To UBound(tb)
                   Debug.Print tb(i)
                 Next i
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  '.Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  .Cells(LigneExcel, 1) = tb(0)
                End With
                With ActiveWorkbook.Worksheets("Memory").Cells(LigneExcel, 2) = ";"
                End With
                With ActiveWorkbook.Worksheets("Memory")
                  '.Cells(LigneExcel, 1) = ListBoxFilters.List(compt)
                  .Cells(LigneExcel, 3) = tb(1)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
                'Unload Me
                'End With
     
    End Sub
    je sais que ça ne peut pas fonctionner comme ça mais je cherche ...

    sinon, je reposerais une question car le problème n'est toujours pas résolu, enfin pour moi ...

    Cordialement,
    Paloma



    Pensez au

  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    j'ai pas tous relu ... mais tu as vu quelquechose comme cela dans mon code ...?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     tb(i) = CStr(Split(st, ";"))

  20. #20
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut [Résolu]
    Bon super merci à vous tous.

    Je ne sais pas si je suis arrivé là ou bbil voulait m'amener mais j'ai fini avec une solution qui me semble maintenant simple.

    Pour information :

    Dans un sens ListBox --------------------> Excel Sheets

    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 ButSaveList_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
     
                'Récupération dans un tableau les informations à placer --------------------------------------
                Dim st As String
                Dim tb(1)
                Dim intPosition As Integer
     
     
            'activer la feuille "Memory" initialisé à la ligne 2 -------------------------
                'Sheets("Memory").Activate
                LigneExcel = 2
     
                With Worksheets("Memory").Cells.ClearContents
                End With
     
                ' Initialisation des entêtes de colonnes - les manipulations de données se faisant à partir de la ligne 2 ---
                    Dim wksDest As Worksheet
                    Set wksDest = Worksheets("Memory")
     
                    wksDest.Cells(1, 1) = "Filter (In Values)"
                    wksDest.Cells(1, 2) = "Separator"
                    wksDest.Cells(1, 3) = "Filter (OUT Values)"
                    wksDest.Cells(1, 4) = "Reference Work Path"
                    wksDest.Cells(2, 4) = TxtJobDirectory
     
            'Récupération des infos de la liste box dans un tableau !
     
                For compt = 0 To ListBoxFilters.ListCount - 1
     
                intPosition = InStr(1, ListBoxFilters.List(compt), ";") - 1
                tb(0) = Left(ListBoxFilters.List(compt), intPosition)
                intPosition = InStr(1, ListBoxFilters.List(compt), ";") + 1
                tb(1) = Mid(ListBoxFilters.List(compt), intPosition)
     
                'Inscrire le contenu d'une listbox dans la feuille "Memory" d'un classeur EXCEL *********
     
                ' Affecter les données de la listbox dans les cellules de la feuille
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 1) = tb(0)
                End With
     
                With ActiveWorkbook.Worksheets("Memory")
                  .Cells(LigneExcel, 3) = tb(1)
                  LigneExcel = LigneExcel + 1
                End With
     
                Next compt
     
                MsgBox "Your filters list has saved.", vbInformation + vbOKOnly, "Liste saved"
     
    End Sub
    et dans l'autre : Excel Sheets --------------------> ListBox

    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 ButRestore_Click()
                Dim Ligne As String
                Dim LigneExcel As Integer
                Dim compt As Integer
                ListBoxFilters.Clear
     
                'activer la feuille "Memory" à la ligne 1 -----------------------------------
                'Sheets("Memory").Activate
                LigneExcel = 1
     
                'Inscrire le contenu d'une feuille Excel dans une listeBox
    suite:
                LigneExcel = LigneExcel + 1
     
                Ligne = Sheets("Memory").Cells(LigneExcel, 1) & ";" & Sheets("Memory").Cells(LigneExcel, 3)
     
                If Ligne = ";" Then
                    If LigneExcel = 2 And Ligne = "" Then
                        MsgBox " Not Data saved ", vbCritical, "Caution"
                    Else
                        ButGenerate.Visible = True
                        MsgBox " All entries has updated", vbInformation, "Congratulation!"
                    End If
     
                Exit Sub
                Else
                ListBoxFilters.AddItem (Ligne)
                GoTo suite
                End If
     
    End Sub
    Merci et à bientôt pour de nouvelles aventures ....



    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  2. Export d'une listbox vers un fichier Excel.
    Par skunkies dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/11/2008, 12h47
  3. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  4. Réponses: 16
    Dernier message: 20/03/2006, 23h21
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54

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