Boucle infini inputbox

Bonjour ,

je voulais saisir une date sur un inputbox mais lors de l'exécution ça tourne et ne s'arrète jamais sauf si je clique sur ctrl + alt + pause .

voila le code :

aa = InputBox("Saisie de la date d'historisation sou format jj/mm/aa ", "date_historisation")

If IsDate(aa) Then DateHisto = CDate(aa)

End If

j'espère avoir été assez claire .

bonjour

Supprime le End if puisque tu écrits sur la méme ligne que if ce que tu dois faire si la condition est vérifiée.

Bonjour,

je l'ai supprimé mais le problème persiste tjrs , à chaque fois je saisie il me redemande de resaisir donc je dois passer par le (ctrl +alt +pause )pour finir l'éxécution .

C'est curieux, avec le fichier que j'ai créé et ton code, ça marche : cf doc ci-joint

Envoie- ton document...

vous trouvez ci-joint un document qui explique tout .

merci de votre aide .

32histo.docx (153.03 Ko)

Bonjour,

j'espere qu'il y aura une personne qui peut m'aider à resoudre mon problème

Bonjour

D'après ton document Word ( mince on n'est pas dans un forum Excel !!!! )

Tu as ta demande de date

aa = InputBox("Saisie de la date d'historisation sou format jj/mm/aa ", "date_historisation")

dans une boucle, c'est pour ça que cette demande est répétée

Si c'est la même date soit tu sors la demande de la boucle soit tu ruses

Exemple

  ICible = NumPremLigneCible + NBLigneCible - 2 'modifié le 18/03/11

Dim DemandeFaite As Boolean
  Do Until ISource = NBLigneSource + 6 'Modifié le 18/03/11
    Cells(ISource, 2).Select
    ChargerProjet

    If DemandeFaite = False Then
      aa = InputBox("Saisie de la date d'historisation sou format jj/mm/aa ", "date_historisation")
     ' que se passe t'il si pas une date ?
      If IsDate(aa) Then DateHisto = CDate(aa)
      MsgBox "OK"
      DemandeFaite = True
    End If

    Calculindicateur

Si cela ne convient pas ton (tes fichiers) vont être indispensables

Bonjour Banzai64,

ça m'affiche un erreur ("erreur d'exécution 94" utilisation incorrecte de Null )

Bonjour

narrou a écrit :

ça m'affiche un erreur ("erreur d'exécution 94" utilisation incorrecte de Null )

Damned !

Diantre !

Sacrebleu !

Où ?

Quand ?

Comment ?

Avec qui ?

A quelle heure ?

Pourquoi ?

Sérieusement je ne sais si je vais pouvoir t'aider, mais sans tes fichiers c'est sur que je ne vais pas aller plus loin

Banzai64 a écrit :

Si cela ne convient pas ton (tes fichiers) vont être indispensables

si t'as bien marqué sur le code j'ai initialisé la date à la fin (apres loop ) à NULL , pour vider la variable .

donc après le débogage il m'indique que l'erreur est au niveau de cette ligne .

j'espère etre claire !?

Bonjour

A la place marques

DateHisto = CDate("00:00:00") 

Cela réinitialise la variable

la macro s"exécute mais elle affiche toujours la date d'aujourdhuit pas la date d'histo .


je suis désolée ,je peux pas envoyer tous les fichiers car ils contiennent des infos confidentiels .

je suis reconnaissante pour votre aide et patience .

Bonjour

Elle te demande la date combien de fois maintenant ?

Bonjour,

elle me demande la date une seule fois , la macro exécute normalement mais elle affiche la date d'aujourd'huit .

Bonjour

Alors c'est dans les autres macros que cette date est changée

Mais je te le répète, sans fichiers je ne vais pas t'aider beaucoup

Enlèves les infos confidentielles, laisse les fichiers exploitables et joins-les au prochain message

je pense aussi , donc j'ai essayé de faire un point d'arret pour voir quand est ce que la date change , il m'affiche un erreur d'exécution 9 "l'indice n'appartient pas à la selection "

à ce niveau la :

Sub historisationindicateurqualité1() 'Modifié le 19/5/2010

'DateDeCalcul = Date

'définir le classeur source

NomClasseurSource = ActiveWorkbook.Name

NomFeuilleSource = "Projets"

NumPremLigneSource = 10

FeuilleSource = NomFeuilleSource

FenetreSource = NomClasseurSource

MonChemin = ActiveWorkbook.Path

'définir classeur cible

NomClasseurCible = "base de donné historisations.xlsm"

FenetreCible = NomClasseurCible

FeuilleCible = "base info"

'J'initialise la colonne avec la date du jour

'COLDate = DateDeCalcul

'definir ma feuille cible

ChDir MonChemin

NumPremLigneCible = 5

NumPremColoneCible = 3

ClasseurSource = MonChemin + "\" + NomClasseurSource

ClasseurCible = MonChemin + FenetreCible ' MonChemin +

Windows(FenetreCible).Activate

Sheets(FeuilleCible).Select

'Initialisation

NumPremLigneCible = 5

NumPremColoneCible = 3

NBLigneCible = Sheets(FeuilleCible).Cells(NumPremLigneCible, 3).CurrentRegion.Rows.Count

Windows(FenetreSource).Activate

Sheets(FeuilleSource).Select

NBLigneSource = Sheets(FeuilleSource).Cells(NumPremLigneSource, 10).CurrentRegion.Rows.Count

ISource = NumPremLigneSource

ICible = NumPremLigneCible + NBLigneCible - 2 'modifié le 18/03/11

Dim DemandeFaite As Boolean

Do Until ISource = NBLigneSource + 6 'Modifié le 18/03/11

Cells(ISource, 2).Select

ChargerProjet

Dim aa

If DemandeFaite = False Then

aa = InputBox("Saisie de la date d'historisation sous format jj/mm/aa ", "date_historisation")

' que se passe t'il si pas une date ?

If IsDate(aa) Then DateHisto = CDate(aa)

MsgBox "OK"

DemandeFaite = True

End If

Calculindicateur

Windows(FenetreCible).Activate

Sheets(FeuilleCible).Select

'Remplissage de la feuille Cible

Cells(ICible, 3) = LibelléProjet

Cells(ICible, 4) = MajeurProjet

Cells(ICible, 5) = MineurProjet

Cells(ICible, 6) = EtatAvancementProjet

Cells(ICible, 7) = Round(IONoteCompletude)

Cells(ICible, 8) = Round(IONoteRespectJalons)

Cells(ICible, 9) = Round(IONoteFraicheur)

Cells(ICible, 10) = IONotesynthése

Cells(ICible, 11) = TypeDeProjet

Cells(ICible, 12) = DateDeCalcul

ICible = ICible + 1

If COLDate = Now Then FenetreCible.Show

'.WrapText = True

'.ShrinkToFit = True

'End With

'Fin_de_Test:

Windows(FenetreSource).Activate

Sheets(FeuilleSource).Select

ISource = ISource + 1

Loop

DateHisto = DateHisto = CDate("00:00:00")

End Sub

Bonjour,

Comme convenu je vous envoie les fichiers concernés et un doc qui explique les démarches .

Banzai64 a écrit :

Bonjour

Si cela ne convient pas ton (tes fichiers) vont être indispensables

merci d'avance pour votre aide .

12classeurs.zip (286.95 Ko)
18histo.docx (170.62 Ko)

Bonjour

Ce que j'ai constaté c'est que 2 fois la déclaration de la variable DatHisto

une fois dans le module "HistorisationIndicateur"

Public DateDeCalcul As Date, DateHisto As Date

Une autre fois dans le module "suiviobjectifs"

Dim PADOLiens, datecible As Date, DateHisto As Date

La variable déclarée au niveau du module prend l'ascendant sur une variable déclarée en Public

Donc si c'est la même variable il faut que tu supprimes celle qui est déclarée dans le module "suiviobjectifs"

Je n'ai pas pu tester ton fichier, il doit manquer des Userforms ?

Bonjour,

ça marche, merci Banzai64 pour votre aide .

Rechercher des sujets similaires à "boucle infini inputbox"