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 :

Pbl sauvegarde MSFlexGrid


Sujet :

Macros et VBA Excel

  1. #41
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    A voir si réellement tu détecte ton grid et c'est concluant.
    maintenand quand tu est sur le stop, tu tape F8, le pointeur avance d'une ligne, tu tape encore F8 et encore F8, tu devrais entré dans la boucle et passer sur les lignes avec Debug.Print, essaye et dit

    Edit si pas trop tard.
    modifie également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("Feuil3").Select
    STOP
     
    UsFrm.show
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UsFrm.show
    Sheets("Feuil3").Select
    STOP

  2. #42
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Premier "F8"
    Mon curseur passe sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil3").Select
    Deuxieme "F8"

    Troisième "F8"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Initialize()
    Ici j'initialise toutes mes ComboBox

  3. #43
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Avec le deplacement de
    meme chose qu'au dessus

  4. #44
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    modif
    Premier "F8"
    Mon curseur passe sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil3").Select
    Deuxieme "F8"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Ligne = 0 To UsFrm.MSFlexGrid1.Rows - 1
    Troisième "F8"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Initialize()
    Ici j'initialise toutes mes ComboBox

  5. #45
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Ca va, j'ai ENFIN compris, met ton classeur sur un poste, éventuellement purger des données confidentielles.
    Ce serais trop compliqué de le faire par question/réponse

  6. #46
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    voila pour toi
    Fichiers attachés Fichiers attachés

  7. #47
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bon, ont aurais du faire cela depuis longtemps...
    Remplace les macros suivantes..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MemoGrid()
    'A envoyer avant de mémoriser le classeur..
    Dim Ligne As Integer, Colonne As Integer
        Sheets("Feuil3").Select
        For Ligne = 1 To UsFrm.MSFlexGrid1.Rows - 1
            For Colonne = 0 To UsFrm.MSFlexGrid1.Cols - 1
                Cells(Ligne, Colonne + 1).Value = UsFrm.MSFlexGrid1.TextMatrix(Ligne, Colonne)
            Next Colonne
        Next Ligne
        Sheets("Feuil1").Select
        Cells(1, 8).Value = UsFrm.MSFlexGrid1.Rows
    End Sub
    Quand tu ouvre le classeur, le grid est réinitialisé avec 1 ligne de titre et c'est tout...il faut réinitialiser le grid COMME IL ETAIT QUAND TU L'A SAUVER
    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
    Private Sub UserForm_Activate()
        Me.DTPicker1.Value = Now
     
        MSFlexGrid1.ColWidth(0) = 1700
        MSFlexGrid1.ColWidth(1) = 1000
        MSFlexGrid1.TextMatrix(0, 1) = "TYPE"
        MSFlexGrid1.ColWidth(2) = 1500
        MSFlexGrid1.TextMatrix(0, 2) = "Numéro"
        MSFlexGrid1.ColWidth(3) = 1000
        MSFlexGrid1.TextMatrix(0, 3) = "Indice"
        MSFlexGrid1.ColWidth(4) = 3000
        MSFlexGrid1.TextMatrix(0, 4) = "Mise à jour par "
    Sheets("Feuil3").Select
    if Cells(1, 8).Value=0 then exit sub 'pour la 1ére initialisation
    UsFrm.MSFlexGrid1.Rows = Cells(1, 8).Value
        For Ligne = 1 To UsFrm.MSFlexGrid1.Rows - 1
            For Colonne = 0 To UsFrm.MSFlexGrid1.Cols - 1
                UsFrm.MSFlexGrid1.TextMatrix(Ligne, Colonne) = Cells(Ligne, Colonne + 1).Value
                'Debug.Print UsFrm.MSFlexGrid1.TextMatrix(Ligne, Colonne)
                'Debug.Print Cells(Ligne + 1, Colonne + 1).Value
     
            Next Colonne
        Next Ligne
     
    End Sub
    Pour que ça fonctionne tu doit réentrer des données et sauver
    Tu teste et tu dit... Mais ça devrais fonctionner vu que chez moi ça va.
    EDIT:
    Attention, j'ai rajouté une ligne IF...

  8. #48
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Merci, jai encore une erreur sur cette commande

    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
    Private Sub CmdChanger_Click()
     
    If TxtNew.Value = TxtNew2.Value Then
     
    MSFlexGrid1.AddItem Row, 1
     
    MSFlexGrid1.TextMatrix(1, 1) = CboxFI.Value
    MSFlexGrid1.TextMatrix(1, 2) = TxtRef.Value
    MSFlexGrid1.TextMatrix(1, 3) = TxtNew2.Value
    MSFlexGrid1.TextMatrix(1, 4) = TxtMAJ.Value
    MSFlexGrid1.TextMatrix(1, 0) = DTPicker1.Value
     
    Else: MsgBox ("/!\ Attention aux indices /!\")
    End If
    End Sub
    a cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MSFlexGrid1.AddItem Row, 1

    Edit :Erreur '30002'
    La grille ne contient pas cette ligne

  9. #49
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Manquais ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Cells(1, 8).Value=0 then exit sub 'pour la 1ére initialisation

  10. #50
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    OK, mais ça n'a plus rien à voir avec le problème précédant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("/!\ Attention aux indices /!\")
    Pas de parenthèse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "/!\ Attention aux indices /!\"
    Je regarde l'autre
    remplacer (pas tester)
    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
    Private Sub CmdChanger_Click()
     
    If TxtNew.Value = TxtNew2.Value Then
     
    MSFlexGrid1.AddItem CboxFI.Value & vbTab & TxtRef.Value & vbTab & TxtNew2.Value _
    & vbTab & TxtMAJ.Value & vbTab & DTPicker1.Value, 1
     
    'MSFlexGrid1.TextMatrix(1, 1) = CboxFI.Value
    'MSFlexGrid1.TextMatrix(1, 2) = TxtRef.Value
    'MSFlexGrid1.TextMatrix(1, 3) = TxtNew2.Value
    'MSFlexGrid1.TextMatrix(1, 4) = TxtMAJ.Value
    'MSFlexGrid1.TextMatrix(1, 0) = DTPicker1.Value
     
    Else: MsgBox "/!\ Attention aux indices /!\"
    End If
    End Sub

  11. #51
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Mon grid comporte toujours une seule ligne à la réouverture, et les information de la feuil3 sont remplacées par les nouvelles et non pas ajoutées aux nouvelles

  12. #52
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Oui... Il a fallu le temps et ca me brulais la vue...
    dans MemoGrid remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Feuil1").Select
    'par 
    Sheets("Feuil3").Select

  13. #53
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    la selection de la feuil1 etait voulu, j'ai modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MemoGrid()
    'A envoyer avant de mémoriser le classeur..
    Dim Ligne As Integer, Colonne As Integer
        Sheets("Feuil3").Select
        For Ligne = 1 To UsFrm.MSFlexGrid1.Rows - 1
            For Colonne = 0 To UsFrm.MSFlexGrid1.Cols - 1
                Cells(Ligne, Colonne + 1).Value = UsFrm.MSFlexGrid1.TextMatrix(Ligne, Colonne)
            Next Colonne
        Next Ligne
        Sheets("Feuil1").Select
        Cells(1, 8).Value = UsFrm.MSFlexGrid1.Rows
    End Sub
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MemoGrid()
    'A envoyer avant de mémoriser le classeur..
    Dim Ligne As Integer, Colonne As Integer
        Sheets("Feuil3").Select
        For Ligne = 1 To UsFrm.MSFlexGrid1.Rows - 1
            For Colonne = 0 To UsFrm.MSFlexGrid1.Cols - 1
                Cells(Ligne, Colonne + 1).Value = UsFrm.MSFlexGrid1.TextMatrix(Ligne, Colonne)
            Next Colonne
            Next Ligne
        Cells(1, 8).Value = UsFrm.MSFlexGrid1.Rows
        Sheets("Feuil1").Select
    End Sub
    Ca a l'air de marcher comme ça

  14. #54
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Un grand merci pour ton aide, je n'aurai jamais trouver tout seul.

    Merci a toi

    Cdlt
    Vince

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Sauvegarder une msflexgrid en une image
    Par khouja dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/05/2008, 13h14
  2. Sauvegardes
    Par tastalian dans le forum DirectX
    Réponses: 12
    Dernier message: 15/10/2002, 01h30
  3. [ADO] Sauvegarde / lecture de recordset
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/09/2002, 16h54
  4. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

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