+1 en Excel

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

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    tout simplement

    [G1] = [G1] + 1

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    1. 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
      1. 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
        1. 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