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 :

[VBA-E]Récupération de données pour mise à jour !


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut [VBA-E]Récupération de données pour mise à jour !
    Hello, Donnez moi votre avis sur cette marche à suivre pour une mise a jour de données et si quelqu'un sait comment faire ????

    J'ai toujours le problème des mises à jour. Je vous explique différemment :

    1) il faut que je puisse choisir la ligne excel que je veux mettre à jour (choisir via un listbox ou un truc dans le genre)

    2) ensuite, une fois que la ligne est choisie, stocker les valeurs des colonnes (A1,B1,C1, etc) dans des variables.

    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim colone1 as Variant
    dim colone1 as Variant
     
    colone1 = Range("A1")
    colone2 = Range("B1")
    etc..

    3) insérer les valeurs des variables dans des textbox afin que l'utilisateur puisse modifier dedans
    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    textbox1.value = colone1
    textbox1.value = colone2
    etc...

    4) crééer un bouton_click qui permettrait de sauvegarder les nouvelles données dans la variable

    5) ensuite, un autre (ou le meme) bouton_click qui permet de réécrire les nouvelles données par dessus les anciennes données !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Public Sub boouton_Click()
    Range("A1") = new_colone1 '??jsais pas si c'est possible
    Range("B1") = new_colone2
    End Sub
    Par contre j'ai ecrit les exemples de code mais ils ne doivent pas du tout correspondre a la réalité, c'était pour essayé d'etre plus précis !


    Merci d'avances et a bientot !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Déja premièrement, pour récupérer les données de ta colonnes, tu devrais utiliser une variable tableau ça sera beaucoup plus ismple a gérer pour les récupérer et tu pourra faire une boucle comme ça pour se faire

    Quoique..A mon souvenir j'avais fait un formulaire de ce genre..


    Je vais te chercher ça

  3. #3
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    j'attends avec impatience ! merci pour la peine ke tu te donne

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Tiens regarde le fichier joint. Bon le code est peut etre pas propre et est surement à modifier. J'ai fait ça l'époque où je devais calculer avec des devises par rapport au pays. A toi après de le mettre d ela façon que tu veux. Essaye de comprendre ocmment il marche mais tu verra c'est pas difficile

    En espérant que ça t'aidera

    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    Merci bien...mais je ne comprends pas vraiement le but de ton programme ?

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Lance la fonction test ça t'ouvrira le formulaire.

    Pour l'explication, le forumalrie reprend les valeurs de la feuille, donc pour moi c'est les devises la textBox me permet de réécrire la valeur de cette devise (ça l'écrit aussi par ailleurs dans le "caption"). Si je veux changer la valeur de ma devise, je la change dans la textBox et je fais valider. Et ça me la changera directement dans le fichier Excel.


    A ce que j'ai compris dans tes explications c'est ce que tu veux faire aussi : Prendr eles valeurs d'une feuille et les mettre dans une ListBox, et mettre dans la TextBox sa valeur et si tu la change que ça la change directement dans ta feuille

    Ou j'ai mal compris ?

  7. #7
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    LoL javais deviné kan meme qu'il fallai ouvrir le form....

    oui t'as tout bien compris ! mais jte refais une petit question :
    tu sais comment faire pour que dans ma listebox, je séléctionne par exemple la ligne 14 et que ca remplisse directement les textbox avec les valeurs que contiennent A1,B1,C1 etc ???

  8. #8
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    yé yé !
    c'est exactement ce qu'il me faut ! j'espere que tu serais OK de m'aider pck moi jcapte pas grand chose en VBA !!

    si tu es ok redi moi ! je suis vraiment un Débutant dans ce domaine et grace a ce forum je me forme petit a petit !!

    Thanks a +

  9. #9
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Bah oui on est la pour ça pour t'aider, si tu veux apprendre ici est le meilleur endroit

    N'oublie pas que quand ton problème est résolu, de mettre le ptit tag qui va bien

  10. #10
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    oui oui pas de souci ! je prépare ma question au mieu et je l'affiche ici plus tard ! mais merci beacoup en tout cas

    ++

  11. #11
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    alors voici comment tout ce déroule :

    1) d'abord, j'ai un Userform (CorpsDeclarations) qui possède des textbox, des cases à cocher --> CorpsDeclarations me permet d'insérer des données dans un fichier Excel.

    2) et tout ça et envoyé sur Outlook (en display).

    Ton systeme ke tu m'a envoyé, me semble vraiment super mais le probleme est que je ne sais guère comment travailler dessus !

    Je reformule ma demande (jespere ke ca n'est pas trop lourd ! )

    - Dans mon userform (CorpsDeclarations), j'ai plusieurs boutons dont 1 qui s'appel MODIFIER PANNE

    - j'aimerais utiliser ton systeme comme suit :
    toi tu avais tes devises en colonne
    USD
    EUR
    CHF

    dans mon document Excel, j'ai le titre des colonnes sur la ligne 3

    -----------------------------------------
    3 | ID | Nom | Prénom | Date | Panne |
    -----------------------------------------
    | 1 | Truc | Much | MNT | sais pas |
    etc sur plusieurs lignes (je le met en piece jointe)

    et justement que le programme prenne les informations en ligne et pas en colonne...
    mais ensuite le probleme est que comment faire si je veux modifier la ligne l'ID 10 ou l'ID 12 par exemple ??

    jespere que ca va mes explications !!

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je te suggère une méthode pour visualiser, dans autant de textBox que tu as de colonnes, la ligne de ton choix, puis de mettre à jour tes corrections... Si j'ai bien compris ce que tu veux…
    Mon fichier comporte 24 colonnes, et donc 24 textbox. Les colonnes vides n'ont pas d'importance.
    En face de chaque textbox, un label indique l'entête de la colonne correspondante
    Un bouton permet d'effacer la ligne courante
    Un bouton permet de supprimer la ligne courante
    Un déplacement d'une ligne sur l'autre enregistre les données modifiées de la ligne quittée
    Une nouvelle ligne de données peut être renseignée et enregistrée sur la base de données
    Enfin, un label indique la ligne sur laquelle tu te trouves.
    C'est une ébauche, il te restera à l'ajuster à tes besoins
    Pièce jointe 10557
    A+

  13. #13
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    je me réjoui de tester ca !

    franchement tu cartonne ouskel'n'or !!! merci beaucoup pour ton aide et pas seulement a se probleme mais en général ! thanks

  14. #14
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    Hello,

    il me genere une erruer "Ne peut pas trouver l'objet scpécifié !"

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Dim NoLigne As Long, NbreColonnes As Integer, fl As Worksheet
    Dim Initialisation As Boolean
    Dim NomControle As Variant
    
    
    Sub Init()
    For NoCol = 1 To NbreColonnes
        NomControle = "Textbox" & NoCol
        Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
        Me.NuméroLigne = NoLigne
    Next
    End Sub
    
    Private Sub Label27_Click()
    
    End Sub
    
    Private Sub QUITTER_Click()
        End
    End Sub
    
    Private Sub SupprimerLigne_Click()
    If MsgBox("Attention : La ligne " & NoLigne & " sera définitivement supprimée" & vbCrLf & "Êtes-vous sûr de vouloir faire ça ?", vbYesNo, "SUPPRESSION DE LA LIGNE") = vbYes Then
        fl.Rows(NoLigne).Delete
        Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 4
        Init
    End If
    End Sub
    
    Private Sub EffacerLigne_Click()
    If MsgBox("La ligne " & NoLigne & " va être effacée, " & vbCrLf & "les données seront définitivement perdues" & vbCrLf & "Êtes-vous sûr de vouloir faire ça ?", vbYesNo, "EFFACEMENT DE LA LIGNE") = vbYes Then
        fl.Rows(NoLigne).Clear
        Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 4
    End If
    End Sub
    
    Private Sub SpinButton1_Change()
        If Not Initialisation Then
            For NoCol = 1 To NbreColonnes
                NomControle = "Textbox" & NoCol
                Debug.Print Me.Controls(NomControle).Value
                fl.Cells(NoLigne, NoCol).Value = Me.Controls(NomControle).Value
            Next
        End If
        Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 4
        If Me.SpinButton1.Max - SpinButton1.Value > 1 Then
            NoLigne = Me.SpinButton1.Max - SpinButton1.Value
            ElseIf Me.SpinButton1.Max - SpinButton1.Value = 1 Then
            Me.SpinButton1.Value = Me.SpinButton1.Max - 1
        End If
        Init
        Initialisation = False
    End Sub
    
    Private Sub UserForm_Initialize()
        Initialisation = True
        Set fl = Worksheets("Declarations")
        NbreColonnes = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Column
        If NbreColonnes > 12 Then NbreColonnes = 12 'Limite du Nbre de Textbox
        NoLigne = 2
        Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 4
        Me.SpinButton1.Value = Me.SpinButton1.Max
        Me.SpinButton1.Min = 1
        NomDesLabels
    End Sub
    
    Sub NomDesLabels()
        For NoCol = 1 To NbreColonnes
            NomLabel = "Label" & NoCol
            Me.Controls(NomLabel).Caption = Cells(1, NoCol)
            Me.NuméroLigne = NoLigne
        Next
    End Sub
    j'ai déclaré la variable NomControle en VARIANT ?? jsai pas...?
    jvai te montrer kan meme a koi ressemble mon fichier LoL
    Images attachées Images attachées  

  15. #15
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Merci Ousk d'avoir pris le relais, j'ai eu du boulot hier après midi pas pu repassé


    Sinon pour l'erreur :


    A première vu ça viendrai de la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fl.Cells(NoLigne, NoCol).Value
    Je vois pas ton f1 initialisé après j'ai aps tout regardé donc ya peut etre une ligne que j'ai sauté

  16. #16
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    merci mais c'est règlé ! franchement vous assuré les gars ca fait plaisir !!!!

    Par contre : comment faire avec le spinbouton pour k'il commence a la ligne 4 et continuer a partir de la ???


    voici le code de ouskel'n'or (que j'utilise)
    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
     
    Private Sub SpinButton1_Change()
        If Not Initialisation Then
            For NoCol = 1 To NbreColonnes
                NomControle = "Textbox" & NoCol
                Debug.Print Me.Controls(NomControle).Value
                fl.Cells(NoLigne, NoCol).Value = Me.Controls(NomControle).Value
            Next
        End If
        NoLigne = 4
        Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 3
        If Me.SpinButton1.Max - SpinButton1.Value > 1 Then
            NoLigne = Me.SpinButton1.Max - SpinButton1.Value
            ElseIf Me.SpinButton1.Max - SpinButton1.Value = 1 Then
            Me.SpinButton1.Value = Me.SpinButton1.Max - 1
        End If
        Init
        Initialisation = False
    End Sub
    aussi j'ai un bouton CONFIRMER : serait-il possible de faire que lorsque je clic dessus, ca enregistre sans avoir a descendre avec le spinbouton ?

  17. #17
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut autre probleme engendré par cette belle réussite !
    DESOLE D'ETRE AUTANT DEPANDANT DE VOUS LE FORUM
    ------------------------------------------------------
    mais y a encore une question ki me tarode :
    comment faire pour que les modifications se fasse sur un autre fichier également ?
    parce que mon userform de base (celui ki me permet de rentrer les informations dans mon fichier excel) ecrit sur deux fichier différents, 1pour la vision direct et le second pour avoir un résumé de toutes les informations rentrées précédemment !

    le premier fichier : declaration_panne.xls
    le second : summary_breakdown.xls

    comment fait le programme pour ecrire sur les deux fichier :
    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
    Application.Workbooks.Open("C:\summary_breakdown.xls").Activate
    Dim sbm_range As Range
    Dim sbm_test As Integer
    Dim identifiant As Range
    Dim sbm_increment As Range
    Dim Cel As Range
     
    Set identifiant = Range("A" & Rows.Count).End(xlUp)(2)
    Set sbm_increment = Range("L" & Rows.Count).End(xlUp)(2)
    Set sbm_range = Range("L1:L65536")
    Set Cel = Range("B" & Rows.Count).End(xlUp)(2)
     
    sbm_test = Application.WorksheetFunction.Max(sbm_range)
    sbm_test = sbm_test + 1
    identifiant(1, 1) = sbm_test
    sbm_increment(1, 1) = sbm_test
     
     
     
    Cel(1, 1) = CorpsDeclarations.ExpediteurNom.Text
    Cel(1, 2) = CorpsDeclarations.ExpediteurPrenom.Text
    Cel(1, 3) = CorpsDeclarations.DateJour & " \ " & CorpsDeclarations.DateMois & " \ " & CorpsDeclarations.DateAnnee
    Cel(1, 4) = selectioncase
    Cel(1, 5) = CorpsDeclarations.Supplement.Text
    Cel(1, 6) = CorpsDeclarations.HeureArret_H & " H " & CorpsDeclarations.HeureArret_M.Text
    Cel(1, 7) = CorpsDeclarations.HeureReprise_H & " H " & CorpsDeclarations.HeureReprise_M.Text
    Cel(1, 8) = CorpsDeclarations.TotalHeure_H & " H " & CorpsDeclarations.TotalHeure_M.Text
    Cel(1, 9) = CorpsDeclarations.RaisonPanne.Text
    Cel(1, 10) = CorpsDeclarations.ReparationsReglages.Text
     
    Application.ActiveWorkbook.Save
    Application.ActiveWorkbook.Close
    jsai pas si je peu utiliser le meme concept ???

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    tu peux utiliser le même concept en rajoutant une petite boucle qui activera un fichier ou l'autre à tour derôle .;-)
    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
     
     
    Application.Workbooks.Open("C:\summary_breakdown.xls")
    Application.Workbooks.Open("C:\declaration_panne.xls")
     
    Dim sbm_range As Range
    Dim sbm_test As Integer
    Dim identifiant As Range
    Dim sbm_increment As Range
    Dim Cel As Range
     
    dim i as integer
     i=0
    while i < 2
    if (i = 0) Then 
    application.Workbooks("C:\summary_breakdown.xls").Activate
    else
    application.Workbooks("C:\declaration_breakdown.xls").Activate
    Endif
    Set identifiant = Range("A" & Rows.Count).End(xlUp)(2)
    Set sbm_increment = Range("L" & Rows.Count).End(xlUp)(2)
    Set sbm_range = Range("L1:L65536")
    Set Cel = Range("B" & Rows.Count).End(xlUp)(2)
     
    sbm_test = Application.WorksheetFunction.Max(sbm_range)
    sbm_test = sbm_test + 1
    identifiant(1, 1) = sbm_test
    sbm_increment(1, 1) = sbm_test
     
     
     
    Cel(1, 1) = CorpsDeclarations.ExpediteurNom.Text
    Cel(1, 2) = CorpsDeclarations.ExpediteurPrenom.Text
    Cel(1, 3) = CorpsDeclarations.DateJour & " \ " & CorpsDeclarations.DateMois & " \ " & CorpsDeclarations.DateAnnee
    Cel(1, 4) = selectioncase
    Cel(1, 5) = CorpsDeclarations.Supplement.Text
    Cel(1, 6) = CorpsDeclarations.HeureArret_H & " H " & CorpsDeclarations.HeureArret_M.Text
    Cel(1, 7) = CorpsDeclarations.HeureReprise_H & " H " & CorpsDeclarations.HeureReprise_M.Text
    Cel(1, 8) = CorpsDeclarations.TotalHeure_H & " H " & CorpsDeclarations.TotalHeure_M.Text
    Cel(1, 9) = CorpsDeclarations.RaisonPanne.Text
    Cel(1, 10) = CorpsDeclarations.ReparationsReglages.Text
     
    Application.ActiveWorkbook.Save
    Application.ActiveWorkbook.Close
    i=i+1
    Wend
    j'ai pas testé le code, je préfère te prévenir

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    je pige pas bien la question tu spinbouton mais si tu veuxcommencer à la ligne 4, faudrait peutre remplacer Range("A1") apr Range("A4"

    Pour le bouton confirmer, il tesuffirait de factoriser ton code qui s'éxécute dans ton spinboutn dans un module à part
    Ainsi, que tu cliques sur confirmer ou le spoin bouton, tu appellerais le même module

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Une question à la fois
    Citation Envoyé par Tu
    aussi j'ai un bouton CONFIRMER : serait-il possible de faire que lorsque je clic dessus, ca enregistre sans avoir a descendre avec le spinbouton ?
    Dans cette procédure, mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub SpinButton1_Change()
        If Not Initialisation Then
               Call MiseAjour
        End If
        '... Ne pas changer la suite
        '...
    Crée la procédure MiseAjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MiseAjour()
            For NoCol = 1 To NbreColonnes
                NomControle = "Textbox" & NoCol
                Debug.Print Me.Controls(NomControle).Value
                fl.Cells(NoLigne, NoCol).Value = Me.Controls(NomControle).Value
            Next
    End sub
    Et sur ton bouton CONFIRMER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub confirmer_Click()
         Call MiseAjour
         Me.SpinButton1.Max = fl.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 3
    End sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/09/2008, 08h32
  2. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  3. Import XML pour mise à jour de données
    Par stylee307 dans le forum Access
    Réponses: 2
    Dernier message: 20/09/2006, 21h29
  4. [VBA-EXcel] Timer pour mise jour automatique
    Par Dos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/09/2006, 20h36
  5. soucis pour mise à jour de données
    Par oceane751 dans le forum Langage
    Réponses: 11
    Dernier message: 29/05/2006, 16h44

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