Nom ambigu/sub or function undeclared

Bonjour,
j'ai besoin d'aide le plus vite possible, mon boss m'a demander de lui programmer un bouton sur excel qui actualise les taches selon "côluté" pour 1 ou "en cours" pour 0,le problème ne réside pas ici, mais sur les déclarations, si je déclare la fonction j'ai un message "nom ambigu détecté", et si je ne le fait pas j'ai un message d'erreur "sub or function undeclared", le code seras ci-joint.
merci d'avance :D.
Dim j As Integer
Dim cpt As Integer
Dim cpt_ok As Integer
Dim cpt_nok As Integer
Function actualiserValpha()
GoTo Feuil2
i = 0
j = 8
cpt = 0
cpt_ok = 0
cpt_nok = 0
While (Worksheet.Name = "feuil2(rraport activité direction 2016)")
    For i = 2 To Worksheet.Size()
        If (T(i)(j) = True) Then
            cpt_ok = cpt_ok + 1
        Else
            cpt_nok = cpt_nok + 1
MsgBox("vous avez %d taches. details :\n%d cmôturées \n%d encours", cpt, cpt_ok, cpt_nok) = vbOK
End Function


1 réponse

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Un bouton VBA doit mettre à jour des tâches dans Excel selon les statuts clôturés et en cours, mais des messages d'erreur nom ambigu et undeclared apparaissent lorsque la fonction actualiserValpha est déclarée. Des réponses évoquent la nécessité de déclarer correctement la procédure (Sub actualiserValpha()) et d'appeler la macro au bon endroit, tout en vérifiant les types et la syntaxe. D'autres suggestions portent sur l'utilisation de IsEmpty pour vérifier le contenu des cellules et sur le raffinement de la boucle For, afin d'éviter les résultats nuls et les messages d'erreur. Pour diagnostiquer, certains évoquent l'emplacement de la macro et l'appel depuis un bouton, et le risque que la boucle n'atteigne pas le code si la feuille active n'est pas correcte.

Bobot (l’IA à votre service)
  1. Salut,

    Tu obtiens une ambiguïté juste avec ce bout de code?
    1. non avec celui la j'ai le deuxième cas (sub or function undeclared)
    2. Peux-tu me mettre tout ton code et me situer l'erreur d'ambiguïté stp.
    3. voila j'ai mis les deux cas
      'quand je ne declare pas
      Dim i As Integer
      Dim j As Integer
      Dim cpt As Integer
      Dim cpt_ok As Integer
      Dim cpt_nok As Integer
      Function actualiserValpha()
      GoTo Feuil2
      i = 0
      j = 8
      cpt = 0
      cpt_ok = 0
      cpt_nok = 0
      While (Worksheet.Name = "feuil2(rraport activité direction 2016)")
      For i = 2 To Worksheet.Size()
      If (T(i)(j) = True) Then
      cpt_ok = cpt_ok + 1
      Else
      cpt_nok = cpt_nok + 1
      MsgBox("vous avez %d taches. details :\n%d cmôturées \n%d encours", cpt, cpt_ok, cpt_nok) = vbOK
      End Function
      'dans ce cas le message d'erreur "Sub or Function undeclared"

      'si je declare
      Dim i As Integer
      Dim j As Integer
      Dim cpt As Integer
      Dim cpt_ok As Integer
      Dim cpt_nok As Integer
      Dim actualiserValpha()
      Function actualiserValpha()
      GoTo Feuil2
      i = 0
      j = 8
      cpt = 0
      cpt_ok = 0
      cpt_nok = 0
      While (Worksheet.Name = "feuil2(rraport activité direction 2016)")
      For i = 2 To Worksheet.Size()
      If (T(i)(j) = True) Then
      cpt_ok = cpt_ok + 1
      Else
      cpt_nok = cpt_nok + 1
      MsgBox("vous avez %d taches. details :\n%d cmôturées \n%d encours", cpt, cpt_ok, cpt_nok) = vbOK
      End Function
      'dans ce cas le message d'erreur "nom ambigu détecté :actualiserValpha"
    4. A ba c'est normal, tu n'as pas compris la programmation c'est tout.
      Dim actualiserValpha()

      Cette ligne n'a pas lieu d'être en vba.
      On ne déclare pas une fonction.
    5. je tombe sur la même erreur "Sub ou fonction non définie"