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] pb avec spinbutton


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut [VBA-E] pb avec spinbutton
    bondoir
    j'ai ajouté un spinbuttondans un suerform mais il ne fonctionne pas là je suis complétement paumé. merci

    je precise que mes combo sont liées

    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
    Private Sub spinbutton1_Click()
    laprocedure SpinButton1.ListIndex
    End Sub
    Private Sub SpinButton1_Change()
    Label1 = SpinButton1.Value
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim DernièreLigne As Integer, i As Integer
        Sheets("feuil1").Activate
        With SpinButton1
             .Min = 2
             .Max = 250
             .SmallChange = 1
        End With
        DernièreLigne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
        For i = 1 To 13
            InitCombo DernièreLigne, i
        Next
     
    End Sub

  2. #2
    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
    Par défaut
    Que veux-tu faire avec ton SpinButton ?
    A+

  3. #3
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    faire avancer les infos de la bases de données chronologiquement en fait lorque l'on clique sur le bouton on sélectionne la ligne du bas ou du haut selon le outon su lequel on clique par rapport a l'affichage qui est sur la combo

    je ne sai pas si j'ai été plus clair

    merci a+

  4. #4
    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
    Par défaut
    C'est bien ce que j'avais supposé mais il est où ton code qui fait ça ?
    Pour que ça fonctionne, tu dois gérer un événement qui existe pour ton spinButton et SpinButton_Click n'existe pas. Mets ton code dans l'événement Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub SpinButton1_Change()
    laprocedure SpinButton1
    Label1 = SpinButton1.Value
    End Sub
    A+

    Edit
    Ensuite, pourquoi fixes-tu sa valeur max à 250 ? Dernièreligne suffirait
    Enfin, je travaillerais à l'envers, c'est à dire que je partirais de la DernièreLigne à 3. Ainsi, quand ta sélection serait la flêche du bas, tu descendrais dans ta feuille et inversement
    Essaie de voir comment écrire ça

  5. #5
    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
    Par défaut
    Tu as un pb dans ta feuille de calcul. Tu as une "crotte" à la ligne 5871 qui entraîne dernièreligne = 5871. Supprime les lignes de la fin des données à la ligne 5900 (Sélection -> Supprimer) et enregistre ton fichier, la crotte disparaîtra et DernièreLigne sera exacte.
    A+

  6. #6
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    OK j'essaye ca merci.

  7. #7
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonjour,

    Lorsque je lance l'userform j'ai une erreur 424, "objet requis"

    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
     
     
    Private Sub SpinButton1_Change()
    Label1 = SpinButton1.Value
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim DernièreLigne As Integer, i As Integer
    Sheets("feuil1").Activate
     
    cellheure.Visible = Not [s1] = "TU"
     
    cbox8.Visible = Not [s1] = "TU"
     
     
     With SpinButton1
        .Min = 2
        .Max = dernièreligne 'même avec 250 j'ai l'erreur
       .SmallChange = 1
        End With
    merci a+

  8. #8
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    oups j'avais fait une erreur j'avais mis un scrollbar


    Désolé, cependant rien ne se passe lorsque je clike dessus

  9. #9
    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
    Par défaut
    Si ! Il se passe quelque chose !
    Affiche DernièreLigne, tu comprendras... Si tu lis des lignes vides, tu n'as rien dans tes combos. Relis ce que je t'ai mis .
    A+

  10. #10
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir ouskel
    qu'estce que tu entends par affiche denièreligne
    quant aux lignes qui posaient j'ai tout supprimer

    quand je clique sur le spinbutton mis a part le label qui me donne la ligne autrement il n'y a aucun effet sur mes combobox

  11. #11
    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
    Par défaut fusion
    As-tu enregistré ton fichier après avoir supprimé tes lignes ?
    Faut tout y dire
    Explication : La syntaxe utilisée pour DernièreLigne a l'inconvénient de compter les lignes vides si elles ont été utilisées puis vidées.
    Ce phénomène disparait après enregistrement du fichier.
    Tu dis
    A+
    NB - Le code que je t'ai passé fonctionne chez moi
    Je te passe celui que j'ai modifier pour que le N° de ligne corresponde bien au bon N°
    [QUOTE"Tu"]qu'estce que tu entends par affiche denièreligne[/QUOTE]Avec Debug.Print DernièreLigne sur la ligne suivant DernièreLigne = .... en ayant afficher la fenêtre Exécution

    Le code : dans Private Sub UserForm_Initialize()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        '....
        '...
        Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        Debug.Print Dernièreligne
        With SpinButton1
             .Min = 2
             .Max = Dernièreligne
             .SmallChange = 1
        End With
    Le code dans SpinButton_Change()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub SpinButton1_Change()
    Dim Dernièreligne As Integer
    Dim NoLigne As Integer
         Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
         NoLigne = Dernièreligne - SpinButton1.Value
         laprocedure NoLigne
         Label1 = NoLigne + 1
    End Sub

  12. #12
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    Bonsoir, et merci

    Déjà le problème de la crotte était remonté à la ligne 5842 bon ca c'est réglé
    mais après avoir mis le code dans le bouton spinn change il me met une erreur 380 "impossible de définir la propriété listindex valeur de propriété non valide", il beugue sur la ligne en gras de sub laprocedure


    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
    
    Sub laprocedure(Lindex)
    Dim lecontrol As Object
    For Each lecontrol In ATESTER.Controls
    If InStr(lecontrol.Name, "cbox") = 1 Then
    ATESTER.Controls(lecontrol.Name).ListIndex = Lindex
    End If
    Next
    
    End Sub
    
    Private Sub cbox9_Enter()
    CellHeure.Visible = False
    End Sub
    Private Sub cbox12_Enter()
    cellheure2.Visible = False
    End Sub
    
    
    Private Sub CellHeure_Enter()
    CellHeure.Visible = False
    cbox9.SetFocus
    End Sub
    Private Sub CellHeure2_Enter()
    CellHeure.Visible = False
    cbox12.SetFocus
    End Sub
    
    Private Sub RETOUR_Click()
    End
    End Sub
    
    Private Sub SpinButton1_Change()
    
    Label1 = SpinButton1.Value
    Dim Dernièreligne As Integer
    Dim NoLigne As Integer
         Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
         NoLigne = Dernièreligne - SpinButton1.Value
         laprocedure NoLigne
         Label1 = NoLigne + 1
    
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim Dernièreligne As Integer, i As Integer
    Sheets("bd").Activate
        CellHeure.Visible = Not [s1] = "TU"
        cbox9.Visible = Not [s1] = "TU"
     Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        Debug.Print Dernièreligne
        With SpinButton1
             .Min = 2
             .Max = Dernièreligne
             .SmallChange = 1
        End With
        'With SpinButton1
        '.Min = 2
        '.Max = DernièreLigne
        '.SmallChange = 1
        'End With
        'DernièreLigne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        For i = 1 To 14
            InitCombo Dernièreligne, i
        Next
        CellHeure.Visible = False
        cellheure2.Visible = False
        End Sub

  13. #13
    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
    Par défaut
    Après la ligne
    Sub laprocedure(Lindex)
    mets
    tu sais comment afficher la fenêtre exécution
    Tu dis car je ne comprends pas
    A+

  14. #14
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    ben il met 3 et 1

    je suppose que ce sont les lignes la ligne 1 c les titres et la 3 la derniere cellule nonvide mais après je fais koi je sais pas ce qu ca veut dire tout a lheure pb sur les lignes mais la dis moi pa squil faut que je vire tout ? si !!!

  15. #15
    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
    Par défaut
    Montre le code que tu utilises pour initialiser le spin et ce que tu as mis dans spin_change. Je pense que tu as dû modifier quelque chose.
    Après, on envisagera de brûler tout ça
    A+

  16. #16
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    je te donnes le code entier du userf



    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    Private Sub cbox1_Click()
    laprocedure cbox1.ListIndex
    End Sub
    Private Sub cbox2_Click()
    laprocedure cbox2.ListIndex
    End Sub
    Private Sub cbox3_Click()
    laprocedure cbox3.ListIndex
    End Sub
    Private Sub cbox4_Click()
    laprocedure cbox4.ListIndex
    End Sub
    Private Sub cbox5Click()
    laprocedure cbox5.ListIndex
    End Sub
     
    Private Sub cbox5_Change()
     
    End Sub
     
    Private Sub cbox6_Click()
    laprocedure cbox6.ListIndex
    End Sub
    Private Sub cbox7_Click()
    laprocedure cbox7.ListIndex
    End Sub
    Private Sub cbox8_Click()
    laprocedure cbox8.ListIndex
    End Sub
     
    Private Sub cbox9_Change()
    If cbox9.ListIndex <> 1 Then
    Debug.Print CellHeure.Text
     
        CellHeure.Text = Format(cbox9.List(cbox9.ListIndex), "dd/mm/yy hh:mm")
    End If
    CellHeure.Visible = True
    End Sub
    Private Sub cbox12_Change()
    If cbox12.ListIndex <> 1 Then
        cellheure2.Text = Format(cbox12.List(cbox12.ListIndex), "dd/mm/yy")
    End If
    cellheure2.Visible = True
    End Sub
     
    Private Sub cbox9_Click()
    laprocedure cbox9.ListIndex
    End Sub
    Private Sub cbox10_Click()
    laprocedure cbox10.ListIndex
    End Sub
    Private Sub cbox11_Click()
    laprocedure cbox11.ListIndex
    End Sub
    Private Sub cbox12_Click()
    laprocedure cbox12.ListIndex
     
    End Sub
    Private Sub cbox13_Click()
    laprocedure cbox13.ListIndex
    End Sub
     
    Sub laprocedure(Lindex)
    Dim lecontrol As Object
    For Each lecontrol In ATESTER.Controls
    If InStr(lecontrol.Name, "cbox") = 1 Then
    Debug.Print Lindex
    ATESTER.Controls(lecontrol.Name).ListIndex = Lindex
    End If
    Next
     
    End Sub
     
    Private Sub cbox9_Enter()
    CellHeure.Visible = False
    End Sub
    Private Sub cbox12_Enter()
    cellheure2.Visible = False
    End Sub
     
     
    Private Sub CellHeure_Enter()
    CellHeure.Visible = False
    cbox9.SetFocus
    End Sub
    Private Sub CellHeure2_Enter()
    CellHeure.Visible = False
    cbox12.SetFocus
    End Sub
     
    Private Sub RETOUR_Click()
    End
    End Sub
     
    Private Sub SpinButton1_Change()
     
    Label1 = SpinButton1.Value
    Dim Dernièreligne As Integer
    Dim NoLigne As Integer
         Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
         NoLigne = Dernièreligne - SpinButton1.Value
         laprocedure NoLigne
         Label1 = NoLigne + 1
     
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim Dernièreligne As Integer, i As Integer
    Sheets("bd").Activate
    ' CellHeure.Visible = Application.UserName = "TU"
        CellHeure.Visible = Not [s1] = "TU"
        cbox9.Visible = Not [s1] = "TU"
     Dernièreligne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        Debug.Print Dernièreligne
        With SpinButton1
             .Min = 2
             .Max = Dernièreligne
             .SmallChange = 1
        End With
        'With SpinButton1
        '.Min = 2
        '.Max = DernièreLigne
        '.SmallChange = 1
        'End With
        'DernièreLigne = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
        For i = 1 To 14
            InitCombo Dernièreligne, i
        Next
        CellHeure.Visible = False
        cellheure2.Visible = False
        End Sub
     
    Sub InitCombo(NoLigne, NoColonne)
    Dim NomCombo As String
    Dim Plage As String
    Sheets("bd").Activate
        Plage = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)).Address
        NomCombo = "cbox" & NoColonne
        With ATESTER.Controls(NomCombo)
            .Text = Cells(1, NoColonne)
            .RowSource = Plage
        End With
    End Sub
    merci a+

  17. #17
    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
    Par défaut
    Je peux rien faire de mieux Pièce jointe 9240
    Tu dis
    A+

  18. #18
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonjour ouskel
    ton fichier beugue sur la combo 9 celle ou il y a la date:

    j'essaye de m'expliquer
    au premier affichage en cliquant sur le spinbutton il affiche des chiffres comme d'hab
    et si on sélectionne une date en utilisant la combo il met une date fixe et plus aucune liaison n'a lieu avec les autres


    merci a+ je sai plus quoi faire, sur mon fichier le spinnbutton ne me sert a rien pourtant les codes sont identiques

  19. #19
    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
    Par défaut
    Je te propose quelque chose :
    Au lieux d'utiliser la syntaxe que je t'ai passée pour dernièreLigne, essai dans une sub à part l'une de celles-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        DernièreLigne = Range("A1").CurrentRegion.End(xlDown).Row
        Debug.print DernièreLigne 
        DernièreLigne = Range("A65535").End(xlUp).Row
        Debug.print DernièreLigne 
        DernièreLigne = Range("A1").End(xlDown).Row
        Debug.print DernièreLigne
    Tu fais ça dans une macro à part et tu retiens la syntaxe qui correspond à ton nombre de lignes vrai
    Tu dis
    A+

    NB - Ça, c'est pour essayer de régler ton pb de spin...

  20. #20
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir, et encore merci ouskel j'essaye ca

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

Discussions similaires

  1. [VBA][EXCEL]PB avec la commande WorksheetFunction.VLookup
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2005, 16h41
  2. [VBA-E] Dates avec année à deux chiffres
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2005, 17h23
  3. [VBA] [WORD] problèmes avec NUMPAGES
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/08/2005, 16h24
  4. [VBA-E] problème avec le sendkeys
    Par darkpocket dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2005, 14h25
  5. [VBA-Excel] Plagen avec Cells
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/01/2005, 10h49

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