IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Bouton premier, précédent, etc.


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut Bouton premier, précédent, etc.
    Bonjour,

    Je souhaite utiliser des boutons pour se déplacer dans USF intervention en mode consultation et modification. Pour le moment, j'en suis là en ce qui concerne la partie de l'appli
    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
    Private Sub Nouveau_Click()
     
    TextBoxDate = Date
    End Sub
     
    Private Sub Annuler_Click()
    Unload Me
    End Sub
     
    Private Sub OK_Click()
     
    With Sheets("Clients")
        .Range("A" & Lig).Value = Val(.Range("A" & Lig - 1).Value) + 1
        .Range("B" & Lig).Value = Application.Proper(Me.Nom)
        .Range("C" & Lig).Value = Application.Proper(Me.Raison_sociale)
        .Range("D" & Lig).Value = Application.Proper(Me.Adresse)
        .Range("E" & Lig).Value = Application.Proper(Me.Adresse2)
        .Range("F" & Lig).Value = Application.Proper(Me.Ville)
    '   .Range("G" & Lig).Value = Me.CP
        With .Range("H" & Lig)
            .Value = Val(Me.Kilometre.Value)
            .NumberFormat = "0.00"
            .HorizontalAlignment = xlCenter
        End With
        With .Range("I" & Lig)
            .Value = Me.TextBoxDate
            .NumberFormat = "dd/mm/yyyy"
            .HorizontalAlignment = xlCenter
        End With
        With .Range("J" & Lig)
            .Value = val(Me.Annee)
            .NumberFormat = "yyyy"
            .HorizontalAlignment = xlCenter
        End With
        .Rows(Lig).Interior.ColorIndex = xlNone
     
    End With
     
    Call Reinit
    Unload Me
    End Sub
     
    Private Sub Reinit()
    'Vidage des controles de l'usf
    Me.Nom = ""
    Me.Raison_sociale = ""
    Me.Adresse = ""
    Me.Adresse2 = ""
    Me.Ville = ""
    'Me.CP = ""
    Me.Kilometre = ""
    Me.TextBoxDate = ""
    Me.annee=""
     
    End Sub
     
    Private Sub Ajouter_client_Initialize()
     
    TextBoxDate = Date
     
    With Sheets("Client")
        If Lig = 0 Then
            Me.OK.Caption = "Ajouter"
            Lig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
            Me.Numero = Val(.Range("A" & Lig - 1)) + 1
        Else
            Me.CmdOKCaption = "Modifier"
            Me.Numero = .Range("A" & Lig)
            Me.Nom = .Range("B" & Lig)
            Me.Raison_sociale = .Range("C" & Lig)
            Me.Adresse = .Range("D" & Lig)
            Me.Adresse2 = .Range("E" & Lig)
            Me.Ville = .Range("F" & Lig)
    '       Me.CP = .Range("G" & lig)
            Me.Kilometre = .Range("H" & Lig)
            Me.TextBoxDate = .Range("I" & Lig)
            Me.Annee=.range("J" & Lig)
     
        End If
    End With
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
    If Lig > 0 Then
        Sheets("Clients").Range("A" & Lig & ":J" & Lig).Borders.LineStyle = xlNone
    Lig = 0
    End If
    End Sub
    A quel niveau, il faut intégrer du code et lequel ?

    J'ai une ébauche sur laquelle je pense m'appuyer :
    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
    Private Sub CmdPremier_Click()
        Numero.ListIndex = 0
    End Sub
     
    Private Sub Numero_Change()
     
        If Numero.ListIndex = -1 Then Exit Sub
     
        Me.CmdPremier.Enabled = True
        Me.CmdPrecedent.Enabled = True
        Me.CmdSuivant.Enabled = True
        Me.CmdDernier.Enabled = True
     
        Select Case Numero.ListIndex
        Case -1
            Me.CmdPremier.Enabled = False
        Case 0
            Me.CmdPrecedent.Enabled = False
            Me.CmdPremier.Enabled = False
        Case Numero.ListCount - 1
            Me.CmdSuivant.Enabled = False
            Me.CmdDernier.Enabled = False
        End Select
     
     Worksheets("Base").Cells(Numero.ListIndex + 1, 1).Select
        Navigue ActiveCell.Row
     
    End Sub
     
    Private Sub CmdPrecedent_Click()
    Numero.ListIndex = Numero.ListIndex - 1
    End Sub
     
    Private Sub CmdSuivant_Click()
    Numero.ListIndex = Numero.ListIndex + 1
    End Sub
     
    Private Sub CmdDernier_Click()
    Numero.ListIndex = Numero.ListCount - 1
    End Sub
    Private Sub Navigue(L As Long)
    Dim i As Byte
     
    With Worksheets("Bd")
    For i = 2 To 12
    Me("TextBox" & i) = .Cells(L, i)
    Next
    End With
     
    End Sub
    Est-ce que je peux l'intégrer à mon USF intervention?

    Merci de votre aide

    Stéphanie

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un code qui gère 4 boutons (ComboBox) gérant Précédent (cbPrevious), Suivant (cbNext), Fin (cbStart) et Début (cbEnd)
    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
    Option Explicit
    Dim n_Row As Single, EofRow As Single
    Dim wkb As Workbook
    Dim sht As Worksheet
    Private Sub cbEnd_Click()
      n_Row = EofRow: Lecture
    End Sub
    Private Sub cbNext_Click()
      n_Row = n_Row + Abs((n_Row < EofRow) * 1): Lecture
    End Sub
    Private Sub cbPrevious_Click()
      n_Row = n_Row - Abs((n_Row > 2) * 1): Lecture
    End Sub
    Private Sub cbStart_Click()
      n_Row = 2: Lecture
    End Sub
    Private Sub UserForm_Initialize()
      Set wkb = ThisWorkbook
      Set sht = wkb.Worksheets("dbClassement")
      EofRow = sht.Range("A" & Columns.Count).End(xlUp).Row
      n_Row = 2: Lecture
    End Sub
    Sub Lecture()
      ' Lecture du record
      With sht
        Me.tbNom = .Range("A" & n_Row)
        Me.tbCode = .Range("D" & n_Row)
      End With
      CheckButton
    End Sub
    Sub CheckButton()
      ' Modifie les propriétés Enabled des Bouton Start, Previous, Next et End
      cbNext.Enabled = (n_Row < EofRow): cbEnd.Enabled = (n_Row < EofRow)
      cbPrevious.Enabled = (n_Row > 2): cbStart.Enabled = (n_Row > 2)
    End Sub

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci Corona de m' accompagner et de votre soutient car je suis une novice en matière de VBA, petite parenthèse pour ceux qui voudraient m'aider aussi.

    Voici ce que j'ai ecris dans le code de l'Usf

    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
    Option Explicit
    Dim n_Row As Single, EofRow As Single
    Dim wkb As Workbook
    Dim sht As Worksheet
    Private Sub CmdDernier_Click()
      n_Row = EofRow: Lecture
    End Sub
     
    Private Sub CmdSuivant_Click()
      n_Row = n_Row + Abs((n_Row < EofRow) * 1): Lecture
    End Sub
     
    Private Sub CmdPrecedent_Click()
      n_Row = n_Row - Abs((n_Row > 2) * 1): Lecture
    End Sub
     
    Private Sub CmdPremier_Click()
      n_Row = 2: Lecture
    End Sub
     
    Sub Lecture()
      ' Lecture du record
      With sht
        Me.Numero = .Range("A" & n_Row)
        Me.Nom = .Range("B" & n_Row)
      End With
      CheckButton
    End Sub
     
    Sub CheckButton()
      ' Modifie les propriétés Enabled des Bouton Start, Previous, Next et End
      CmdSuivant.Enabled = (n_Row < EofRow): CmdDernier.Enabled = (n_Row < EofRow)
      CmdPrecedent.Enabled = (n_Row > 2): CmdPremier.Enabled = (n_Row > 2)
    End Sub
     
    Private Sub CmdOK_Click()
     
    With Sheets("BD")
        .Range("A" & LaLig).Value = Val(.Range("A" & LaLig - 1).Value) + 1
     
    ...
    ...
    ...
    et plus bas, à l' initialisation du formulaire

    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
    Private Sub Userform_Initialize()
     
    Set wkb = ThisWorkbook
    Set sht = wkb.Worksheets("BD")
    EofRow = sht.Range("A" & Columns.Count).End(xlUp).Row
    n_Row = 2: Lecture
     
    Mois.ListIndex = Month(Now()) - 1
    Annee = Year(Now)
     
     
    With Sheets("BD")
        If LaLig = 0 Then
            Me.CmdOK.Caption = "Ajouter"
            LaLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
            Me.Numero = Val(.Range("A" & LaLig - 1)) + 1
        Else
     
    ...
    ...
    ...
    Les petits points correspond au reste du code

    Merci

    Stéphanie

    Re Bonjour,

    J'ai essaye de faire une recherche avec les mots precedent, suivant, etc, ça affiche des problemes ou solutions qui n'ont rien avoir. J'ai donc fait une recherche avancée, pareil.

    Y-a-t-il une solution concrete à mon probleme ?

    Merci

    Stephanie

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci pour votre aide, c'est résolu. Je reviendrait si j'ai d'autres question.

    Stephanie

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

Discussions similaires

  1. [MySQL] Boutons : suivant, précédent
    Par achos dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 15/02/2007, 17h48
  2. Taille des bouton, cases à cocher etc ..
    Par Arola78 dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2006, 16h25
  3. Pb avec le bouton page précédente
    Par PedroBD dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/06/2006, 19h36
  4. [VB6] Bouton navigation précédent et suivant
    Par predictus dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/03/2006, 22h36
  5. Réponses: 4
    Dernier message: 24/11/2005, 09h34

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