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
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.



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

25 réponses

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 à 15:21
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
0
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 à 15:39
Comment l'incruster dans la formule
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
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
Modifié par julia Namor le 20/09/2014 à 16:24
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
0
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 à 17:06
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
0
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 à 18:29
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
0
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 à 18:41
Je n'ai pas modifié les codes VBA personnalisés.
Si tu as des codes ; je suis preneuse

Tu lis ce qu'on écrit ?
3 fois je t'ai expliqué la modif à faire.
Si tu ne veux pas le faire ça ne me dérange pas. Dis-le clairement et on en parle plus.
eric
0
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 à 19:15
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 .
0
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 à 23:54
Non, pas possible d'avoir des idées sans connaitre le but.
Je n'ose pas imaginer que c'est pour avoir la somme des congés par type, statut, affectation et fonction qui peut être obtenu par un TCD.
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
21 sept. 2014 à 20:55
Bonsoir

J'ai nommé tous les tests et effectué les remplacements. Je dirais que ça été un peu mieux au niveau rapidité.

Mais en enregistrant mon fichier en format xlsb , c'est radical Le fichier s'ouvre en - 20 secondes et je ne constate aucun dysfonctionnement .

wait and see

Merci beaucoup
0