Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Désolé, je ne comprends pas ce que tu cherches à faire. Quel est le but de ta macro ?
Daniel
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Bonjour
C'est un problème un peu particulier que je souhaite vous soumettre (sous EXCEL 2010 minimum).
Je développe un programme EXCEL utilisant le calcul itératif pour de nombreuses boucles; le contenu des données de ce programme et le temps de traitement sont très variables d'une utilisation à l'autre obligeant trop fréquemment à redéfinir manuellement le nombre maximal d'itérations. je souhaiterais une configuration automatique.
Le nombre maximal d'itérations à configurer est manuel dans le menu "Fichier - Options - Formules".
Dans l'idéal, ce nombre maximal d'itérations serait à récupérer dans une cellule d'une feuille Excel et dont le contenu serait variable suivant la quantité de données de l'application à traiter. En cas d'absence de nombre dans la cellule, la configuration manuelle reprend la main.
A ma connaissance aucune instruction ne permet de réaliser cette configuration automatique du nombre maxi d'itérations.
Pour le moins serait-il possible de savoir comment et où récupérer la configuration d'Excel à l'ouverture d'un fichier (les informations de l'onglet "Options" paramétrables manuellement.
D'un niveau bien trop modeste en VBA, je recherche une macro qui permette cette configuration automatique à partir du contenu d'une cellule d'une feuille.
En remerciant d'avance celles et ceux qui pourraient m'aider à résoudre ce problème.
Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.
Désolé, je ne comprends pas ce que tu cherches à faire. Quel est le but de ta macro ?
Daniel
Merci de télécharger le fichier Excel "Itérations" à cette adresse pour constater les 3 problèmes suivants:
http://vri.perso.neuf.fr/public\_html/Private.htm
* En lançant le fichier et en choisissant la séquence de Fct suivante, la macro ne s'exécute pas
* En lançant alors la macro Itérations le nombre d'itérations max est bien modifié mais les icônes VisualBasic et Macros ne sont plus accessibles. (Macro en exécution constante)
* Bien que configuré manuellement dans Options , Formules, l'exécution des itérations en bas de la fenêtre Excel ne s'effectue pas conformément au nombre configuré (Avec ou sans référence circulaire écrite)
Merci de tes résultats pour rectifier cela.
Bonsoir,
DoEvents s'emploie sans paramètre.
J'ai l'impression que la macro s'arrête de fonctionner lorsque je travaille dans Excel
Sais-tu où la macro s'arrête ?
Daniel
Bonjour et merci de ton dernier code qui m'a bien inspiré avec le re "test" à la fin; après réflexions recherches et essais, voilà où j'en suis et c'est presque bon:
Private Sub Worksheet_Calculate()
With Application
.Iteration = True
.MaxChange = 0.01
.MaxIterations = 2: Rem: Configuration initiale des itérations
[Envoi!BV43] = .MaxIterations
End With
Rem: Dans une feuille Excel
Rem: BW43 = N° de séquence en cours de fonctionnement (0 à 3 pour 4 séquences)
Rem: BX26 = Nbre d'itérations max configurées par séquence (Nbre variable
Rem: BV43 = Affichage dans Excel du Nbre d'itérations max configurées
Retour:
Rem: séquence 1 Attente d'un message d'Excel
Do While [Envoi!BW43] = 0
With Application
.MaxIterations = [Envoi!BX26].Value
[Envoi!BV43] = .MaxIterations
End With
DoEvents
Loop
Rem: séquence 2 Attente Nbre d'itérations max venant d'Excel
Do While [Envoi!BW43] = 1
With Application
.MaxIterations = [Envoi!BX26].Value
[Envoi!BV43] = .MaxIterations
End With
DoEvents
Loop
Rem: séquence 3 Attente du message codé
Do While [Envoi!BW43] = 2
With Application
.MaxIterations = [Envoi!BX26].Value
[Envoi!BV43] = .MaxIterations
End With
DoEvents
Loop
Rem: séquence 4 Attente d'effacement complet des données
Do While [Envoi!BW43] = 3
With Application
.MaxIterations = [Envoi!BX26].Value
[Envoi!BV43] = .MaxIterations
End With
DoEvents
Loop
GoTo Retour
End Sub
En mode pas à pas de la macro c'est parfait si ce n'est que je suis obligé de jongler avec les 2 fenêtres manuellement à savoir celle de la feuille excel pour faire avancer les séquences de 0 à 3 et celle de la macro pour poursuivre le pas à pas.
Il doit manquer une information dans la macro ou dans Excel qui puisse faire exécuter la macro en permanence alors que je suis sur ma feuille Excel à configurer les séquences une par une.
J'ai l'impression que la macro s'arrête de fonctionner lorsque je travaille dans Excel et pas moyen de la refaire travailler automatiquement mais uniquement en repointant la macro et en reprenant la suite du pas à pas dans la boucle en cours de Do While.
DoEvents me semble utile mais je ne sais s'il y a autre chose à configurer pour cette instruction.
Patrick
| Sub test() <br><br>With Application <br><br> For i = 1 To n <br><br> .Iteration = True <br><br> If [Envoi!BX28] = 1 Then .MaxIterations = [Envoi!BX26].Value <br><br> If [Envoi!BX29] = 1 Then .MaxIterations = [Envoi!BX26].Value <br><br> If [Envoi!BX30] = 1 Then .MaxIterations = [Envoi!BX26].Value <br><br> If [Envoi!BX31] = 1 Then .MaxIterations = 2 <br><br> .MaxChange = 0.01 <br><br> Next i <br><br>End With <br><br>If [Condition] Then test <br><br>End Sub |
|---|
La macro "Test" est relancée si la condition est remplie.
Daniel