Comment programmer la valeur maximale toupie soit la valeur du K1en VBA?

Bonsoir Forum,

Svp comment modifier ce code vba excel dans l'activation feuil PROG_passe mettre à jour le code spécialement pour que la valeur maximale toupie pour que la valeur max soit la valeur de la cellule K1 ;mot de passe : taper 3 fois espace

Merci Bq.

13fichier.xlsm (27.60 Ko)
Private Sub Worksheet_Activate()

    Dim wsBase As Worksheet
    Dim wsProg As Worksheet
    Dim lastRow As Long
    Dim rangeToCopy As Range
    Dim i As Long
    Dim maxValue As Double
    Dim spinner As Object
    Dim ctrl As Object

    ' Définir les feuilles
    Set wsBase = ThisWorkbook.Sheets("Base_passe")
    Set wsProg = ThisWorkbook.Sheets("PROG_passe")

    ' Trouver la dernière ligne avec des données dans la colonne A de la feuille Base_passe
    lastRow = wsBase.Cells(wsBase.Rows.Count, "A").End(xlUp).Row
wsProg.Range("J1:J" & wsProg.Cells(wsProg.Rows.Count, "J").End(xlUp).Row).ClearContents
wsProg.Range("i1:J" & wsProg.Cells(wsProg.Rows.Count, "i").End(xlUp).Row).ClearContents
    ' Définir la plage à copier (de A2 à la dernière ligne de la colonne A)
    Set rangeToCopy = wsBase.Range("A2:A" & lastRow)

    ' Copier la plage
    rangeToCopy.Copy

    ' Coller dans la feuille PROG_passe à partir de la cellule J1
    wsProg.Range("J1").PasteSpecial Paste:=xlPasteValues

    ' Ajouter des numéros d'ordre dans la colonne I de PROG_passe, à partir de I1
    For i = 1 To lastRow - 1 ' Commence à partir de 1 et va jusqu'à la dernière ligne des données copiées
        wsProg.Cells(i, "I").Value = i ' Remplit les cellules de I1 à In avec les numéros
    Next i

    ' Mettre à jour la valeur du contrôle de formulaire "toupie"
    ' Vérifier si la cellule K1 contient une valeur numérique
    If IsNumeric(wsProg.Range("K1").Value) Then
        maxValue = wsProg.Range("K1").Value ' Valeur maximale basée sur K1
    Else
        MsgBox "La cellule K1 doit contenir une valeur numérique.", vbExclamation, "Erreur"
        Exit Sub
    End If

    ' Trouver le contrôle SpinButton nommé "Compteur 5" dans la feuille PROG_passe
    On Error Resume Next
    For Each ctrl In wsProg.Shapes
        If ctrl.Type = msoFormControl Then
            If ctrl.Name = "Compteur 5" Then ' Utilisation du nom exact "Compteur5_QuandChangement"
                Set spinner = ctrl.ControlFormat
                Exit For
            End If
        End If
    Next ctrl
    On Error GoTo 0

    ' Si le contrôle toupie est trouvé, on met à jour la valeur maximale
    If Not spinner Is Nothing Then
        spinner.Max = maxValue
    Else
        MsgBox "Aucun contrôle toupie nommé 'Compteur 5' n'a été trouvé dans la feuille PROG_passe.", vbExclamation, "Erreur"
    End If

    ' Désactiver le mode copie
    Application.CutCopyMode = False

    ' Afficher le MsgBox
    MsgBox "Mise à jour du Liste personnel", vbInformation, "HICHAM"
End Sub

Bonsoir Forum,

Après une longue recherche, j’ai trouvé la solution, et j’ai aimé partager la solution avec les membres du site et du forum, peut-être que l’un d’entre eux en aura grandement besoin

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Vérifiez si la cellule K1 dans la feuille "PROG_passe" a changé
    If Not Intersect(Target, Sheets("PROG_passe").Range("K1")) Is Nothing Then
        SpinButton1.Max = Sheets("PROG_passe").Range("K1").Value
    End If
End Sub

Rendre la valeur du SpinButton1.Max dynamique et liée à une cellule spécifique

Bonjour,

je n'ai pas pu tester car ton code est verrouillé mais à mon avis tu gagnerais du temps à le faire d'office.
Test + Intersect pour ne pas faire le .Max prendra plus de temps que de le faire directement.
eric

Rechercher des sujets similaires à "comment programmer valeur maximale toupie soit k1en vba"