Problème de macro Userform + IF

Bonjour,

Je viens vers vous simplement pour un avis d'un oeil un peu plus expert qui est le mien.

J'ai un userform qui est appelé avec un bouton

Sub Edition_Contrat_QuandClick()
    Menu_edition.Show
End Sub

Ensuite j'ai un bouton qui lance une macro de vérification de checkbox

Private Sub CommandButton1_Click()
Call Module15.verifck
End Sub

Voici la macro verifck qui est lancé par le bouton

Sub verifck()

If Checkbox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = False And CheckBox4.Value = False Then

Call Module1.macro1
Else
End If

If Checkbox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = False And CheckBox4.Value = False Then

Call Module2.macro2
Else
End If

If Checkbox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True And CheckBox4.Value = False Then

Call Module3.macro3
Else
End If

If Checkbox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = False And CheckBox4.Value = True Then

Call Module4.macro4
Else
End If

If Checkbox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True And CheckBox4.Value = False Then

Call Module5.macro5
Else
End If

If Checkbox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True And CheckBox4.Value = True Then

Call Module6.macro6
Else
End If

If Checkbox1.Value = CheckBox2.Value = CheckBox3.Value = CheckBox4.Value = True Then

Call Module7.macro7
Else
End If

If CheckBox5.Value = True Then
Call Module8.macro8
Else
End If

If CheckBox6.Value = True Then
Call Module9.macro9
Else
End If

If CheckBox7.Value = True Then
Call Module10.macro10
Else
End If

End Sub

Et ensuite derrière j'ai les différentes macros appelées.

Mon erreur est "membre de méthode ou de données introuvable". Quelqu'un as une idée ?

Bonjour,

Serait-il possible d'avoir un fichier?

Bonjour niko, le forum,

Bien sur je pensais l'avoir mis. Désolé.

Fichier trop volumineux je l'ai zippé.

22test.7z (48.79 Ko)

Bonjour,

LE nom de tes chexkbox n'est pas correct par rapport ton code macro, tu appelles les checkbox1, 2,3 etc.... alors que dans ton userform il y des checkbox avec des appelations différentes : checkbox 5, 6, 8, etc...

C'est pour cela que tu as ce message d'erreur : Objet requis car il ne les trouve pas tout simplement.

Autre chose : pourquoi ne pas rattacher tes instructions directement dans ton userform (et part checkbox) plutôt que dans un module à part?

@ +

Bonjour niko, le forum

Merci d'avoir déjà vu cette erreur j'avais pas pensé à regarder dans les propriétés des checkbox.

Si je les rattache à mon USERFORM je ne pourrais pas faire des conditions comme je le fais dans mon module non ?

Merci

Ce que je voulais te faire faire, pour simplifier tout ça, c'est associer dans la checkbox1 le code: call macro01, checkbox2 : call macro02, etc....

Plus rapide dans l'éxecution et dans l'écriture du code!

pour se faire tu ouvre le USF, double click sur une checkbox X et tu colle le code call macroX dedans.

Oui c'est ce que j'avais compris mais tu regardes le code pour les premières checkbox il y a une vérification entre 4 checkbox qui lancent une macro.

Mais c'est vrai que pour les autres je pourrais les intégrer dans le USERFORM malheureusement même après le renommage des checkbox il ne me lance pas ma macro de publipostage

Bonjour tout le monde,

J'ai essayé plusieurs codes les voici mais je n'ai toujours aucun résultat positif:

Private Sub Publipostage_Click()
If Menu_edition_AFAPS.Controls("checkbox1").Value = 1 Then Call AFAPS_Police.AFAPS_Police
If Menu_edition_AFAPS.Controls("checkbox2").Value = 1 Then Call AFAPS_Lettre_accompagnement.AFAPS_Lettre_accompagnement
If Menu_edition_AFAPS.Controls("checkbox3").Value = 1 Then Call AFAPS_Attestation.AFAPS_Attestation
If Menu_edition_AFAPS.Controls("checkbox4").Value = 1 Then Call AFAPS_Quittance.AFAPS_Quittance
Call edition_pieces_AFAPS.edition_pieces_AFAPS
End Sub
Private Sub CommandButton1_Click()
 If CheckBox1 And CheckBox2 = 0 And CheckBox3 = 0 And CheckBox4 = 0 Then Call Module1.macro1
 If CheckBox1 And CheckBox2 And CheckBox3 = 0 And CheckBox4 = 0 Then call Module2.macro2
 If CheckBox1 And CheckBox2 = 0 And CheckBox3 And CheckBox4 = 0 Then Call Module3.macro3
 If CheckBox1 And CheckBox2 And CheckBox3 = 0 And CheckBox4 Then Call Module4.macro4

 Unload Me
End Sub

Le premier sur mon fichier de travail et le deuxième sur mon fichier de test.

Sur le premier code il me dit membre de méthode ou de données introuvable

Sur le deuxième code il y a une erreur au niveau du "Unload Me"

Ah et j'ai aussi éssayé cette forme là :

If Menu_edition_AFAPS.Controls("checkbox1" &i).Value = 1 Then Call AFAPS_Police.AFAPS_Police

Il faut avouer que je sèche sur ce problème.

Merci d'avance

Bonjour,

Essaye de remplacer dans les codes ayant ".value=1" par "=true" peut être que ça fonctionera mieux.....

J'ai recopié le code avec les if des check box et cela fonctionne, j'ai modifié un peu le code car tu ne "balayes" pas toute les possibilité (c'est peut être fait exprès!)

Private Sub CommandButton1_Click()

 If CheckBox1 And CheckBox2 = 0 And CheckBox3 = 0 And CheckBox4 = 0 Then Call macro01
 If CheckBox1 = 0 And CheckBox2 And CheckBox3 = 0 And CheckBox4 = 0 Then Call macro02
 If CheckBox1 = 0 And CheckBox2 = 0 And CheckBox3 And CheckBox4 = 0 Then Call macro03
 If CheckBox1 = 0 And CheckBox2 = 0 And CheckBox3 = 0 And CheckBox4 Then Call macro04

 Unload Me

End Sub

@+

Bonjour niko,

J'ai essayé comme tu me l'as fait remarqué :

Sub EP_AFAPS()

' If "test sur la checkbox" = True then call module1.macro1 ===>

If Menu_Edition_Contrat_AFAPS.Controls("checkbox1").Value = True And Menu_edition.Controls("checkbox2").Value = False And Menu_edition.Controls("checkbox3").Value = False And Menu_edition.Controls("checkbox4").Value = False Then Call AFAPS_Police.AFAPS_Police
End If

If Menu_Edition_Contrat_AFAPS.Controls("checkbox2").Value = True Then Call AFAPS_Lettre_accompagnement.AFAPS_Lettre_accompagnement
End If

If Menu_Edition_Contrat_AFAPS.Controls("checkbox3").Value = True Then Call AFAPS_Attestation.AFAPS_Attestation
End If

If Menu_Edition_Contrat_AFAPS.Controls("checkbox4").Value = True Then Call AFAPS_Quittance.AFAPS_Quittance
End If

End Sub

Mais toujours la même erreur " Membre de méthode ou de données introuvable"

Pourrais-tu m'envoyer ton fichier de test pour voir si j'ai le même soucis en le lançant chez moi.

Merci d'avance

voilà,

l'erreur s'arrête sur quel partie du code?

Avec ce code, il me lance bien ma macro de publipostage word correspondant à la 1er checkbox par contre les autres on dirait qu'il ne fait pas de vérification dessus.

Private Sub Publipostage_Click()
 If CheckBox1 = True Then Call AFAPS_Police.AFAPS_Police
 If CheckBox2 = True Then Call AFAPS_Lettre_accompagnement.AFAPS_Lettre_accompagnement
 If CheckBox3 = True Then Call AFAPS_Attestation.AFAPS_Attestation
 If CheckBox4 = True Then Call AFAPS_Quittance.AFAPS_Quittance

 Unload Me
End Sub

Par rapport à ton fichier si je le modifie pour faire les même test qu'au dessus il ne m'affiche plus rien mais aucune erreur n'est généré :

Private Sub CommandButton1_Click()

 If CheckBox1 = 1 And CheckBox2 = 0 And CheckBox3 = 0 And CheckBox4 = 0 Then Call macro01
 If CheckBox1 = 0 And CheckBox2 = 1 And CheckBox3 = 0 And CheckBox4 = 0 Then Call macro02
 If CheckBox1 = 0 And CheckBox2 = 0 And CheckBox3 = 1 And CheckBox4 = 0 Then Call macro03
 If CheckBox1 = 0 And CheckBox2 = 0 And CheckBox3 = 0 And CheckBox4 = 1 Then Call macro04

 Unload Me

End Sub

J'ai nommé mes macro "01" peut être quelles n'ont pas le même nom chez toi.

Je pourrai avoir de nouveau le fichier sur lequel tu travaille pour que j'essaye de mon côte.

Il y a sûrment des ElseIf à rajouter dans ton premier code.

Bien sur voici le fichier de test.

J'ai regardé je pense qu'il n'y a pas de problème au niveau des noms.

93535.zip (62.29 Ko)

tu lances une vérif sur les 4 premiers checkbox au début, dans quel but?

Si Checkbox 1 est coché je lance une macro, si deux sont cochés j'en lance deux. Et si les 4 sont cochés je lance 4 macros de publipostages différentes. Si je ne suis pas clair n'hésite pas je peux faire un schéma plus explicatif.

ok les combinaisons possible pour que ça lance une macro c'est :

check 1

check 1 +2

check 1+2+3

check 1+2+3+4

ou y'en a d'autre du style :

check 2 +3

check 2+3+4

check 3+4

Exactement voici toute les possibilités dans la réalité si je n'en ai pas oublié.

Ci-joint dans le fichier aide.

Cdlt,

6aide.zip (5.01 Ko)

J'ai faite toute les possibilités selon ton classeur "Aide" directement dans le USF en associant des macro "bidons" que tu remplacera par tes macro de publipostage.

Pour que tu t'y retrouve, je mettrais chaque macro de publipostage dans un module différent en renommant les modules.

Dernier truc, ne connaissant pas comment fonctionne le publipostage (j'utilise pas du tout) je ne sais pas ce que ça va donner lorsque deux ou trois macros de publi vont s'activer, je la sens mal celle là

13copie-de-3535.zip (65.19 Ko)

Je dois avoir des problèmes de vues car sur le fichier 3535 de test ça marche mais sur mon fichier cela ne fonctionne plus.

Je vais joindre le vrai ça sera peut être plus simple.

J'arriverais peut-être à la conclusion que cela vient de chez moi.

Rechercher des sujets similaires à "probleme macro userform"