Conditions If...
Résolu
julia Namor
Messages postés
524
Date d'inscription
Statut
Membre
Dernière intervention
-
julia Namor Messages postés 524 Date d'inscription Statut Membre Dernière intervention -
julia Namor Messages postés 524 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
Je me fais des noeuds au cerveau en essayant de réadapter la formule macro ci-dessous.
En fait j'aimerai poser des conditions "if" pour l'importation d'une base de données.
-Si la plage "MALQ2" est vide, donc affichage du MsgBox ("Voulez-vous importer la Base de Donnée ori ") suivi de toute la procédure d'importation
-Si la plage "MALQ2" n'est pas vide, alors affichage du MsgBox ("Vous ne pouvez Importer la BASE DE DONNEES ") puis fermeture .....
J'ai recopié le code ci-dessous.
Merci beaucoup de m'aider à résoudre ce casse-tête.
Je me fais des noeuds au cerveau en essayant de réadapter la formule macro ci-dessous.
En fait j'aimerai poser des conditions "if" pour l'importation d'une base de données.
-Si la plage "MALQ2" est vide, donc affichage du MsgBox ("Voulez-vous importer la Base de Donnée ori ") suivi de toute la procédure d'importation
-Si la plage "MALQ2" n'est pas vide, alors affichage du MsgBox ("Vous ne pouvez Importer la BASE DE DONNEES ") puis fermeture .....
J'ai recopié le code ci-dessous.
Merci beaucoup de m'aider à résoudre ce casse-tête.
Private Sub Cmd_Import_BDD_Click() On Error Resume Next With Worksheets("BDD Agents ") Set plage = Range("MALQ2") If Application.CountA(plage) <> 0 Then MsgBox ("Vous ne pouvez Importer la BASE DE DONNEES ") Cancel = True If Application.CountA(plage) = 0 Then MsgBox ("Voulez vous importer la Base de Donnée ori ") Dim Table, derlig 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.") End If End If End With End Sub
A voir également:
- Conditions If...
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Mail
- Comment débloquer "je ne suis pas un robot" ✓ - Forum Windows 8 / 8.1
- Libreoffice calc si plusieurs conditions ✓ - Forum LibreOffice / OpenOffice
25 réponses
Merci de vous pencher sur mon casse-tête
J'ai nommé le test "OU(J2="titulaire";J2="stagiaire";J2="Contractuel CDI")" en "TESTA"
Comment l'incruster dans la formule =SI(ET(H2="Diététicien";I2="Hébergement");SI(OU(J2="titulaire";J2="stagiaire";J2="Contractuel CDI");tja(S2)))
J'ai fait comme tel : =SI(ET(H2="Diététicien";I2="Hébergement");SI(OU(TESTA);tja(S2)))
Mais la formule ne fonctionne. Elle me marque FAUX ; là où elle devrait marquer une valeur juste
Merci beaucoup de m'aider
J'ai nommé le test "OU(J2="titulaire";J2="stagiaire";J2="Contractuel CDI")" en "TESTA"
Comment l'incruster dans la formule =SI(ET(H2="Diététicien";I2="Hébergement");SI(OU(J2="titulaire";J2="stagiaire";J2="Contractuel CDI");tja(S2)))
J'ai fait comme tel : =SI(ET(H2="Diététicien";I2="Hébergement");SI(OU(TESTA);tja(S2)))
Mais la formule ne fonctionne. Elle me marque FAUX ; là où elle devrait marquer une valeur juste
Merci beaucoup de m'aider
Oui Eric ;
Je ne compte surement pas modifier chaque formule une à une . Mais je me disais qu'avec la fonction recherche de Excel je pourrais effectuer des remplacements de syntaxe par des noms.
Je suis larguée par ta proposition ci-dessous. Tu pourrais m'expliquer la procédure en utilisant une autre colonne ?
<gras>
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.
Julia
Je ne compte surement pas modifier chaque formule une à une . Mais je me disais qu'avec la fonction recherche de Excel je pourrais effectuer des remplacements de syntaxe par des noms.
Je suis larguée par ta proposition ci-dessous. Tu pourrais m'expliquer la procédure en utilisant une autre colonne ?
<gras>
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.
Julia
Ex en utilisant un nom : https://www.cjoint.com/?DIurhqcZXYL
Mais réfléchit plutôt comment procéder autrement et ne pas avoir 1800 formules par lignes, ça sera beaucoup plus efficace.
Et tu as modifié le code des fonctions personnalisées ?
eric
Mais réfléchit plutôt comment procéder autrement et ne pas avoir 1800 formules par lignes, ça sera beaucoup plus efficace.
Et tu as modifié le code des fonctions personnalisées ?
eric
Je n'ai pas modifié les codes VBA personnalisés. C'est sûr qu'en passant par des macros j'aurais pu gagner en efficacité, encore faut-il savoir manipuler les codes VBA (tel n'est pas mon cas). C'est pourquoi je me suis contenté d'écrire des formules et de les incrémenter ; d'où mon fichier farcis de formules comme dirait F894009.
J'ai commencé la procédure comme tu me l'as expliqué ; ça marche
Si tu as des codes ; je suis preneuse
Julia
J'ai commencé la procédure comme tu me l'as expliqué ; ça marche
Si tu as des codes ; je suis preneuse
Julia
Ne t'énerves pas Eric ; ton aide m'est précieuse.
J'ai effectué les modifications sur les macros depuis que tu me l'as conseillé ; (`Application volatile).
Je pensais plutôt à des codes qui puissent remplacer les nombreuses formules TEST Si et Si(et) qui farcissent mon fichier et de ce fait je pourrais envisager de changer la structure de mon fichier afin de pouvoir garder les modes d'exploitations des résultats des test SI ;
Anyway , je te remercie beaucoup pour ton soutien .
J'ai effectué les modifications sur les macros depuis que tu me l'as conseillé ; (`Application volatile).
Je pensais plutôt à des codes qui puissent remplacer les nombreuses formules TEST Si et Si(et) qui farcissent mon fichier et de ce fait je pourrais envisager de changer la structure de mon fichier afin de pouvoir garder les modes d'exploitations des résultats des test SI ;
Anyway , je te remercie beaucoup pour ton soutien .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si tu avais fait comme je t'ai expliqué tu ne poserais pas la question.
Tu as des milliers de formules. Tu comptes vraiment les éditer une par une ?
Laisse tomber si tu comptes faire comme ça.
Le OU() n'est pas nécessaire puisqu'il est inclus dans la formule du nom.
Mais même avec si tu n'as pas le bon résultat c'est que le nom n'est pas correct.
Sans fichier (réduit !!!) impossible de voir plus.
eric