Conditions If...
Résolu/Fermé
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
-
Modifié par pijaku le 18/09/2014 à 14:18
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 21 sept. 2014 à 20:55
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 21 sept. 2014 à 20:55
A voir également:
- Conditions If...
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- If out - Forum Matériel & Système
- Fonction rang excel avec plusieurs conditions ✓ - Forum Excel
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Windows 8 / 8.1
25 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
17 sept. 2014 à 17:17
17 sept. 2014 à 17:17
Bonjour,
devrait aller:
A+
devrait aller:
Private Sub Cmd_Import_BDD_Click()
Dim Table, derlig
On Error Resume Next
If Application.CountA(Range("MALQ2")) > 0 Then
MsgBox ("Vous ne pouvez pas Importer la BASE DE DONNEES ")
'Cancel = True ???????????????????
Else
reponse = MsgBox("Voulez-vous importer la Base de Donnée ori ?", vbYesNo)
If reponse = vbYes Then
With Worksheets("BDD Agents ")
'derniere cellule non vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
'mise en memoire des infos
Table = .Range("A2:J" & derlig)
End With
With Worksheets("BDD Agents ori")
'derniere cellule non vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
'si deja vide
If derlig = 1 Then
derlig = 2
End If
'efface zone
.Range("A2:J" & derlig).ClearContents
'copie infos
.Range("A2").Resize(UBound(Table, 1), UBound(Table, 2)) = Table
End With
MsgBox ("L'importation de la Base de Donnée Q1 s'est terminée correctement.")
Else
MsgBox ("Pas d'importation base a votre demande.")
End If
End If
End Sub
A+
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
18 sept. 2014 à 13:25
18 sept. 2014 à 13:25
Bonjour f894009
Merci pour le code.Ca marche
J'ai voulu cacher certains onglets de mon fichier en passant par afficher /masquer dès que les feuilles concernées sont impliquées dans un calcul avec macro ou dès que j'en fais appel par un bouton ; il me met erreur; je pense que Excel ne les retrouve plus (puisqu'elles sont masquées)
J'ai regardé pas mal de forums mais je n'arrive pas à trouver la résolution du problème.
Auriez-vous une solution?
merci énormément
Merci pour le code.Ca marche
J'ai voulu cacher certains onglets de mon fichier en passant par afficher /masquer dès que les feuilles concernées sont impliquées dans un calcul avec macro ou dès que j'en fais appel par un bouton ; il me met erreur; je pense que Excel ne les retrouve plus (puisqu'elles sont masquées)
J'ai regardé pas mal de forums mais je n'arrive pas à trouver la résolution du problème.
Auriez-vous une solution?
merci énormément
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 416
Modifié par Vaucluse le 18/09/2014 à 13:43
Modifié par Vaucluse le 18/09/2014 à 13:43
Bonjour
pour utiliser une feuille masquée dans un calcul, utilisez activate au lieu de select pour sélectionner la feuille.
... et bien sur
Sheets("....").Visible = true
pour la faire réapparaître si besoin.
crdlmnt
pour utiliser une feuille masquée dans un calcul, utilisez activate au lieu de select pour sélectionner la feuille.
... et bien sur
Sheets("....").Visible = true
pour la faire réapparaître si besoin.
crdlmnt
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
18 sept. 2014 à 15:51
18 sept. 2014 à 15:51
Bonjour Vaucluse,
julia Namor:: faudrait voir ce que vous avez comme codes, il y a ce que propose Vaucluse, mais a voir
julia Namor:: faudrait voir ce que vous avez comme codes, il y a ce que propose Vaucluse, mais a voir
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 10:25
19 sept. 2014 à 10:25
Bonjour F894009
Oui , je vais explorer la méthode de vaucluse
merci
Oui , je vais explorer la méthode de vaucluse
merci
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 10:26
19 sept. 2014 à 10:26
Bonjour à toutes et à tous
Je me permets de rester sur ce fil pour vous solliciter à nouveau
Je finalise un fichier sous forme de logiciel sur la gestion des arrêts.
Problèmes : le fichier est lourd (19mo), long à ouvrir (presque 3mns) et à fermer mais une fois ouvert on navigue dedans assez aisément.
J'y ai une multitude de formules de calculs (si, si et, si ou.....) associées à des macros.
Je reste convaincue (à tort certainement) que les causes de la lourdeur du fichier et de la lenteur d'ouverture proviennent des nombreuses formules.
Pour vous donner une idée, je vous joins une copie d'une partie du fichier. Notez que cette copie ne représente que la partie ou se trouvent les formules que j'incrimine et constitue le tiers du fichier final.
NB : J'ai aussi effectué un nettoyage manuel de toutes les feuilles pour éliminer les dernières cellules utilisées par Excel
Est possible selon vous d'alléger les formules pour gagner en rapidité.
Merci beaucoup
https://www.cjoint.com/?3Itke29FYDF
Je me permets de rester sur ce fil pour vous solliciter à nouveau
Je finalise un fichier sous forme de logiciel sur la gestion des arrêts.
Problèmes : le fichier est lourd (19mo), long à ouvrir (presque 3mns) et à fermer mais une fois ouvert on navigue dedans assez aisément.
J'y ai une multitude de formules de calculs (si, si et, si ou.....) associées à des macros.
Je reste convaincue (à tort certainement) que les causes de la lourdeur du fichier et de la lenteur d'ouverture proviennent des nombreuses formules.
Pour vous donner une idée, je vous joins une copie d'une partie du fichier. Notez que cette copie ne représente que la partie ou se trouvent les formules que j'incrimine et constitue le tiers du fichier final.
NB : J'ai aussi effectué un nettoyage manuel de toutes les feuilles pour éliminer les dernières cellules utilisées par Excel
Est possible selon vous d'alléger les formules pour gagner en rapidité.
Merci beaucoup
https://www.cjoint.com/?3Itke29FYDF
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
19 sept. 2014 à 11:04
19 sept. 2014 à 11:04
Bonjour,
Je reste convaincue (à tort certainement) que les causes de la lourdeur
Ben si, que de formules et colonnes farcies. J'espere que vous avez besoin de tous ces renseignements pour une seule personne (qui est au courant de cela). Access aurait ete plus approprie dans votre cas. Avec du VBA, un minimum de formules et du temps ce serait jouable
Je reste convaincue (à tort certainement) que les causes de la lourdeur
Ben si, que de formules et colonnes farcies. J'espere que vous avez besoin de tous ces renseignements pour une seule personne (qui est au courant de cela). Access aurait ete plus approprie dans votre cas. Avec du VBA, un minimum de formules et du temps ce serait jouable
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 11:17
19 sept. 2014 à 11:17
Question peut être... bête
J'ai lu quelque part que les formules nommées permettaient de gagner en rapidité.
En nommant chaque formule de la ligne 2 par un nom est-ce que je pourrais les étirer vers le bas?
Cordialement
J'ai lu quelque part que les formules nommées permettaient de gagner en rapidité.
En nommant chaque formule de la ligne 2 par un nom est-ce que je pourrais les étirer vers le bas?
Cordialement
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 11:27
19 sept. 2014 à 11:27
Bonjour le fil,
Oui tout à fait, exemple va dans le gestionnaire des et donne un nom à ta formule exemple Test
et dans fait référence à: tu saisis ta formule exemple A1+B1
en C1 tu fais appel à ton champ =Test et tu incrémentes vers le bas
mais tu pourrais également ajouter une conditionnelle pour ne pas afficher les zéros dans le cas de cellule vide
Oui tout à fait, exemple va dans le gestionnaire des et donne un nom à ta formule exemple Test
et dans fait référence à: tu saisis ta formule exemple A1+B1
en C1 tu fais appel à ton champ =Test et tu incrémentes vers le bas
mais tu pourrais également ajouter une conditionnelle pour ne pas afficher les zéros dans le cas de cellule vide
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
19 sept. 2014 à 12:11
19 sept. 2014 à 12:11
Bonjour Mike_31,
merci du tuyau, mais sera-ce suffisant car son fichier est le 1/3 du final ????
merci du tuyau, mais sera-ce suffisant car son fichier est le 1/3 du final ????
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 12:54
19 sept. 2014 à 12:54
Re,
L'intérêt d'un champ nommé ou dans ton cas une formule nommée est que tu peux l'appeler sur n'importe quel onglet et allège énormément un fichier. Après il faut voir la structure du fichier pour juger
L'intérêt d'un champ nommé ou dans ton cas une formule nommée est que tu peux l'appeler sur n'importe quel onglet et allège énormément un fichier. Après il faut voir la structure du fichier pour juger
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 13:15
19 sept. 2014 à 13:15
Bonjour et merci mike-31
j'ai nommé quelques formules comme tu m'as suggéré mais l'incrementataion vers le bas ne marche pas .
Ou peut etre que je m'y suis mal pris?
j'ai nommé quelques formules comme tu m'as suggéré mais l'incrementataion vers le bas ne marche pas .
Ou peut etre que je m'y suis mal pris?
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 13:48
19 sept. 2014 à 13:48
Re,
Colle une de ces formules qui ne s'incrémente pas pour voir
Colle une de ces formules qui ne s'incrémente pas pour voir
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 13:58
19 sept. 2014 à 13:58
Un exemple de formule que j'ai nommé "AF" .Quand j'incrémente vers le bas c'est toujours AF qui est marqué et j'obtiens le même résultat pour toute la colonne .
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
19 sept. 2014 à 15:21
19 sept. 2014 à 15:21
Re, tout le monde
Dans le fichier de Julia Namor, pour moi, il faudra un nom par cellule avec formule puisque aucune formule est identique. Mais je ne connais pas tout ....
Dans le fichier de Julia Namor, pour moi, il faudra un nom par cellule avec formule puisque aucune formule est identique. Mais je ne connais pas tout ....
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 15:46
19 sept. 2014 à 15:46
Re,
explique ce que tu attends de ta formule, et que vient faire nbja
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
explique ce que tu attends de ta formule, et que vient faire nbja
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 16:01
19 sept. 2014 à 16:01
En fait cette formule veut dire pour l'agent : si affectation est médecine puis statut est soit titulaire ou Contractuel CDI ou stagiaire donc calcul :somme de tous les jours d'arrêts compris entre 8jrs et 21jrs des colonnes k, m, n , o, p ,q
NBJA vient de cette macro ci-dessous.
Public Function nbja(plage As Range, nmin As Long, nmax As Long)
Dim cel As Range, total As Long, t, k As Long
Application.Volatile
total = 0
For Each cel In plage
t = Split(cel.Value, "+")
For k = 0 To UBound(t)
If t(k) >= nmin And t(k) <= nmax Then total = total + 1
Next k
Next cel
nbja = total
End Function
Merci beaucoup
NBJA vient de cette macro ci-dessous.
Public Function nbja(plage As Range, nmin As Long, nmax As Long)
Dim cel As Range, total As Long, t, k As Long
Application.Volatile
total = 0
For Each cel In plage
t = Split(cel.Value, "+")
For k = 0 To UBound(t)
If t(k) >= nmin And t(k) <= nmax Then total = total + 1
Next k
Next cel
nbja = total
End Function
Merci beaucoup
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 16:58
19 sept. 2014 à 16:58
Re,
positionne la cellule sur la première cellule qui doit comptabiliser les jours et active le gestionnaire des noms, remplace ta formule
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
par
=SI(ET(Feuil1!$I2="Médecine");SI(OU(Feuil1!$J2="titulaire";Feuil1!$J2="stagiaire";Feuil1!$J2="Contractuel CDI");SOMME(Feuil1!$K2:$Q2;8;21)))
mais d'après la fonction personnalisée elle doit compter le nombre entre une valeur mini et une valeur maxi que tu peux traiter dans la formule
positionne la cellule sur la première cellule qui doit comptabiliser les jours et active le gestionnaire des noms, remplace ta formule
=SI(ET($I2="Médecine");SI(OU($J2="titulaire";$J2="stagiaire";$J2="Contractuel CDI");nbja($K2:$L2:$M2:$N2:$O2:$P2:$Q2;8;21)))
par
=SI(ET(Feuil1!$I2="Médecine");SI(OU(Feuil1!$J2="titulaire";Feuil1!$J2="stagiaire";Feuil1!$J2="Contractuel CDI");SOMME(Feuil1!$K2:$Q2;8;21)))
mais d'après la fonction personnalisée elle doit compter le nombre entre une valeur mini et une valeur maxi que tu peux traiter dans la formule
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
19 sept. 2014 à 17:05
19 sept. 2014 à 17:05
Ok mike-31 je traite tout ca et te tiens au courant
Merci beaucoup
Merci beaucoup
Mike-31
Messages postés
18347
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 novembre 2024
5 104
19 sept. 2014 à 21:41
19 sept. 2014 à 21:41
Re,
par contre pour compter le nombre d'arrêt la formule dans le gestionnaire des noms serait
=SI(ET(Feuil1!$I2="Médecine");SI(OU(Feuil1!$J2="titulaire";Feuil1!$J2="stagiaire";Feuil1!$J2="Contractuel CDI");NBVAL(Feuil1!J2:P2);21))
par contre pour compter le nombre d'arrêt la formule dans le gestionnaire des noms serait
=SI(ET(Feuil1!$I2="Médecine");SI(OU(Feuil1!$J2="titulaire";Feuil1!$J2="stagiaire";Feuil1!$J2="Contractuel CDI");NBVAL(Feuil1!J2:P2);21))
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 240
Modifié par eriiic le 20/09/2014 à 00:27
Modifié par eriiic le 20/09/2014 à 00:27
Bonjour,
Au passage tes 3 fonctions personnalisées n'ont pas l'air d'avoir besoin d'être volatile.
Elle reçoivent en paramètre toutes les cellules dont elles ont besoin, elles sont donc ré-évaluées automatiquement si un des paramètre change.
Là tu les recalcules systématiquement dans toutes les cellules pour rien, ça consomme des ressources inutilement.
Rien que sur cet extrait, pour une moindre saisie n'importe où sur la feuille (même si aucune de ses fonction est partie prenante) tu la recalcules 7200 fois...
Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie.
Autre conseil sur les formules.
Soit la formule : =SI(ET($G2="Hébergement");SI(OU($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI");nbja($I2:$J2:$K2:$L2:$M2:$N2:$O2;1;3)))
Le test OU($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI") est utilisé 20 fois sur la même ligne par d'autres formules, et encore plus loin au moins 110 fois, je n'ai pas eu le courage de regarder plus loin.
Ressort ce test dans une colonne ou il sera évalué une seule fois et le résultat utilisé par tes 130 formules.
Gain de réactivité encore. Même si c'est moins spectaculaire que s'il y avait des multiplications ou divisions, les opérations sur les chaines sont assez coûteuses.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Au passage tes 3 fonctions personnalisées n'ont pas l'air d'avoir besoin d'être volatile.
Elle reçoivent en paramètre toutes les cellules dont elles ont besoin, elles sont donc ré-évaluées automatiquement si un des paramètre change.
Là tu les recalcules systématiquement dans toutes les cellules pour rien, ça consomme des ressources inutilement.
Rien que sur cet extrait, pour une moindre saisie n'importe où sur la feuille (même si aucune de ses fonction est partie prenante) tu la recalcules 7200 fois...
Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie.
Autre conseil sur les formules.
Soit la formule : =SI(ET($G2="Hébergement");SI(OU($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI");nbja($I2:$J2:$K2:$L2:$M2:$N2:$O2;1;3)))
Le test OU($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI") est utilisé 20 fois sur la même ligne par d'autres formules, et encore plus loin au moins 110 fois, je n'ai pas eu le courage de regarder plus loin.
Ressort ce test dans une colonne ou il sera évalué une seule fois et le résultat utilisé par tes 130 formules.
Gain de réactivité encore. Même si c'est moins spectaculaire que s'il y avait des multiplications ou divisions, les opérations sur les chaines sont assez coûteuses.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
20 sept. 2014 à 09:18
20 sept. 2014 à 09:18
Bonjour Eric
Si j'ai bien compris
Je nomme le test "OU ($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI")" puis je le remplace par son nom dans toutes les formules.
"Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie"
Je n'ai pas bien compris ce que tu voulais dire
Merci de m'aider
Si j'ai bien compris
Je nomme le test "OU ($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI")" puis je le remplace par son nom dans toutes les formules.
"Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie"
Je n'ai pas bien compris ce que tu voulais dire
Merci de m'aider
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 240
20 sept. 2014 à 12:56
20 sept. 2014 à 12:56
Bonjour,
Je nomme le test "OU ($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI")" puis je le remplace par son nom dans toutes les formules.
Je proposais dans une colonne supplémentaire mais tu peux aussi passer par un nom.
Attention à 2 choses :
- être sur la ligne 2 avant de définir ton nom puisque dans la formule tu es en relatif par rapport à cette ligne.
- re-contrôler la définition du nom après validation. Excel a la fâcheuse manie parfois de modifier des références, ou bien d'ajouter des " qui faussent la formule.
Pour remplacer : Ctrl+3 pour afficher les formules, Ctrl+H
Ensuite recopier les formules vers le bas.
Mais bon, je ne sais pas comment tu utilises les résultat de tes 1800 formules par ligne mais ça ne parait pas très efficient. A mon avis tu devrais repenser comment résoudre ton problème autrement. Il y en a peut-être 1700 de trop...
"Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie"
Je n'ai pas bien compris ce que tu voulais dire
Dans le code des 3 fonctions personnalisées ajoute une ' devant la ligne :
' application.volatile
Ca la rend inactive. Si tu constates que j'ai fait une mauvaise analyse et qu'elle est vraiment nécessaire tu rétablis.
C'est ici que tu auras le plus gros gain en réactivité.
eric
Je nomme le test "OU ($H2="titulaire";$H2="stagiaire";$H2="Contractuel CDI")" puis je le remplace par son nom dans toutes les formules.
Je proposais dans une colonne supplémentaire mais tu peux aussi passer par un nom.
Attention à 2 choses :
- être sur la ligne 2 avant de définir ton nom puisque dans la formule tu es en relatif par rapport à cette ligne.
- re-contrôler la définition du nom après validation. Excel a la fâcheuse manie parfois de modifier des références, ou bien d'ajouter des " qui faussent la formule.
Pour remplacer : Ctrl+3 pour afficher les formules, Ctrl+H
Ensuite recopier les formules vers le bas.
Mais bon, je ne sais pas comment tu utilises les résultat de tes 1800 formules par ligne mais ça ne parait pas très efficient. A mon avis tu devrais repenser comment résoudre ton problème autrement. Il y en a peut-être 1700 de trop...
"Met en commentaire application.volatile dans les 3 fonctions et tu n'attendras plus 3-4 secondes entre chaque saisie"
Je n'ai pas bien compris ce que tu voulais dire
Dans le code des 3 fonctions personnalisées ajoute une ' devant la ligne :
' application.volatile
Ca la rend inactive. Si tu constates que j'ai fait une mauvaise analyse et qu'elle est vraiment nécessaire tu rétablis.
C'est ici que tu auras le plus gros gain en réactivité.
eric