+1 en Excel

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un numéro que je dois faire +1 à chaque fois que j'imprime. Je suis arrivé au numéro 4706
Ce numéro est dans la colonne G à la ligne 1

J'ai effectué ce Code VB derrière un bouton

Private Sub Plus1_Click()
1G = 1G + 1
End Sub


Mais cela ne fonctionne pas. Avez vous une solution pour moi svp ?
Configuration: Windows XP
Firefox 3.0.13

5 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Tu peux utiliser spin button
    0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    tout simplement

    [G1] = [G1] + 1

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0
  3. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Merci Mike-31
    Mais je ne peux pas le tester a cause d'une erreur de script.
    Public Function ChiffreLettre(ValNum As Double) As String
    
        Static Unites(0 To 9) As String
        Static Dixaines(0 To 9) As String
        Static LesDixaines(0 To 9) As String
        Static Milliers(0 To 4) As String
         
        Dim i As Integer
        Dim nPosition As Integer
        Dim ValNb As Integer
        Dim LesZeros As Integer
        Dim strResultat As String
        Dim strTemp As String
        Dim tmpBuff As String
         
        Unites(0) = "zero"
        Unites(1) = "un"
        Unites(2) = "deux"
        Unites(3) = "trois"
        Unites(4) = "quatre"
        Unites(5) = "cinq"
        Unites(6) = "six"
        Unites(7) = "sept"
        Unites(8) = "huit"
        Unites(9) = "neuf"
      
        Dixaines(0) = "dix"
        Dixaines(1) = "onze"
        Dixaines(2) = "douze"
        Dixaines(3) = "treize"
        Dixaines(4) = "quatorze"
        Dixaines(5) = "quinze"
        Dixaines(6) = "seize"
        Dixaines(7) = "dix-sept"
        Dixaines(8) = "dix-huit"
        Dixaines(9) = "dix-neuf"
      
        LesDixaines(0) = ""
        LesDixaines(1) = "dix"
        LesDixaines(2) = "vingt"
        LesDixaines(3) = "trente"
        LesDixaines(4) = "quarante"
        LesDixaines(5) = "cinquante"
        LesDixaines(6) = "soixante"
        LesDixaines(7) = "soixante-dix"
        LesDixaines(8) = "quatre-vingt"
        LesDixaines(9) = "quatre-vingt-dix"
      
        Milliers(0) = ""
        Milliers(1) = "mille"
        Milliers(2) = "million"
        Milliers(3) = "millard"
      
        On Error GoTo ChiffreLettreError
         
        strTemp = CStr(Int(ValNum))
         
        For i = Len(strTemp) To 1 Step -1
            ValNb = Val(Mid$(strTemp, i, 1))
            nPosition = (Len(strTemp) - i) + 1
            Select Case (nPosition Mod 3)
                Case 1
                    LesZeros = False
                    If i = 1 Then
                        If ValNb > 1 Then
                            tmpBuff = Unites(ValNb) & " "
                        Else
                            tmpBuff = ""
                        End If
                    ElseIf Mid$(strTemp, i - 1, 1) = "1" Then
                        tmpBuff = Dixaines(ValNb) & " "
                        i = i - 1
                    ElseIf Mid$(strTemp, i - 1, 1) = "9" Then
                        tmpBuff = LesDixaines(8) & " " & Dixaines(ValNb) & " "
                        i = i - 1
                    ElseIf Mid$(strTemp, i - 1, 1) = "7" Then
                        tmpBuff = LesDixaines(6) & " " & Dixaines(ValNb) & " "
                        i = i - 1
                    ElseIf ValNb > 0 Then
                        tmpBuff = Unites(ValNb) & " "
                    Else
                        LesZeros = True
                        If i > 1 Then
                            If Mid$(strTemp, i - 1, 1) <> "0" Then
                                LesZeros = False
                            End If
                        End If
                        If i > 2 Then
                            If Mid$(strTemp, i - 2, 1) <> "0" Then
                                LesZeros = False
                            End If
                        End If
                        tmpBuff = ""
                    End If
                    If LesZeros = False And nPosition > 1 Then
                        tmpBuff = tmpBuff & Milliers(nPosition / 3) & " "
                    End If
                    strResultat = tmpBuff & strResultat
                Case 2
                    If ValNb > 0 Then
                                strResultat = LesDixaines(ValNb) & " " & strResultat
                    End If
                Case 0
                    If ValNb > 0 Then
                        If ValNb > 1 Then
                            strResultat = Unites(ValNb) & " cent " & strResultat
                        Else
                            strResultat = "cent " & strResultat
                        End If
                    End If
            End Select
        Next i
        If Len(strResultat) > 0 Then
            strResultat = UCase$(Left$(strResultat, 1)) & Mid$(strResultat, 2)
        End If
      
    EndChiffreLettre:
        ChiffreLettre = strResultat
        Exit Sub
      
    ChiffreLettreError:
        strResultat = "Une Erreur !"
        Resume EndChiffreLettre
    End Sub


    Il me signal le Exit Sub comme erreur. Si je le désactive il me renvois l'erreur à End Sub
    Je penses que c'est une mauvaise idée de vouloir faire le +1 :/

    Merci encore
    0
  4. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    J'ai compris le problème, il marche super bien mais il faut que la feuille ne soit pas verrouillée.
    Malheureusement je n'ai pas d'autre solution, il faut impérativement verrouiller la feuille.

    Merci à tous les deux
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Je me suis absenté, il est possible de mettre en début de procédure la déprotection même avec mot de passe et avant end sub remettre la protection avec ton mot de passe
    0