Correction code macro : erreur de compilation End Sub attendu

01passepasse

XLDnaute Nouveau
Bonjour

très débutant en matière de programmation de macro j'ai besoin d'un coup de main pour corriger un bout de code qui ne fonctionne pas.

Dans la case B1 de ma feuille je souhaite activer la macro15.

ci-dessous le code la macro qui ne fonctionne pas ; que faut-il y modifier pour que ça marche ? Message d'erreur actuel : erreur de compilation End Sub attendu

Merci d'avance de votre collaboration



Sub Macro17()
'
' Macro17 Macro
'


Private Sub Worksheet_change(ByVal Target As Excel.Range)
If Target.Row = Range("B1"). Then Macro15

End Sub
End If
 

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

Bonjour,

Supprime le End if
Ou alors écris comme cela :

Private Sub Worksheet_change(ByVal Target As Excel.Range)
If Target.Row = Range("B1"). Then
Macro15
end if
End Sub


Ecris plutôt :

If target.address= range("B1").address then
 
Dernière édition:

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

Merci Chalet53 de ta réponse très rapide.
Tu as certainement parfaitement corrigé le code mais mon problème de message d'erreur continue : erreur de compilation End Sub attendu

Je suis vraiment très débutant et je ne maîtrise pas du tout l'éditeur de macro ; : Sub Macro17 () est surligné en jaune avec une petite flèche sur le coté et ce message d'erreur. Que dois je faire ??
 

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

Exactement, c'est la macro 17 qui active la macro 15 ; tout au moins, je ne sais pas faire activer la macro 15 autrement que de créer une macro (17) spécifiquement que pour cela.
Pour info le code de la macro15 est le suivant :
Sub Macro15()
'
' Macro15 Macro
'

'
Sheets("Base").Range("A1:L10").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("crit"), CopyToRange:=Range("A44:L44"), Unique:= _
False

End Sub
 

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

Alors explique moi le déroulement :

tu as une macro événementielle qui, lorsque tu changes une valeur dans la cellule B1, appelle la macro15 qui appelle la macro17

Tel que je vois ta macro15, si dans ta macro événementielle tu as mis macro15, celle-ce doit s'exécuter (ou alors tu as une erreur de syntaxe quelque part

tu ne peux pas joindre ton fichier ?
 

Pièces jointes

  • passepasse.xls
    30 KB · Affichages: 63
  • passepasse.xls
    30 KB · Affichages: 65
  • passepasse.xls
    30 KB · Affichages: 63
Dernière édition:

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

Je te joints le fichier en question.
Il s'agit d'un formulaire qui permet d'enregistrer les non conformités observées au moment de la réception de lots de tomates.
Il y a une macro(13) qui colle les infos du formulaire dans une base et vide le formulaire pour une nouvelle saisie.
La macro 15 est un filtre avancé de la base qui permet de consulter en bas du formulaire les réclamations déja enregistrées avec un même fournisseur (ADH)
Lorsque tout sera Ok dans mon fichier, je rajouterai 1 bout de code à la macro 13 pour imprimer le formulaire.
L'idéal, mais ça ce n'est pour demain, c'est qu'en plus de cette édition papier de ce formulaire, je puisse en imprimer en pdf ce document et l'envoyer par mail à 3 destinataires différents.

Je te laisse jeter 1 œil au fichier.
 

Pièces jointes

  • Fiche NC agréage V3.xls
    432.5 KB · Affichages: 130

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

Re,

Sub Macro17()
'
' Macro17 Macro
'

Private Sub Worksheet_change(ByVal Target As Excel.Range)
If Target.Address = Range("B1").Address Then Macro15

End Sub


Ta macro 17 ne peut pas fonctionner : tu as deux Sub (un Sub tout seul et un Private Sub : ça ne peut pas fonctionner)

ESt-ce qu'il y a une condition nécessaire pour que la macro17 lance la macro15 (c'est l'impression que me donne ce que tu as écrit : si la valeur de la cellule B1 change de valeur alors lancer la macro15)
Si c'est cela que tu souhaites : précise-le, je modifierai ta macro en conséquence
 

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

Merci pour la correction.
Il n'y a pas vraiment de condition pour que la macro 17 lance la macro 15. Si la valeur entrée dans B1 correspond à un des N° des ADH, alors le filtre avancé de la macro 15 présentera en bas du formulaire la résultat du filtre ; si la valeur entrée en B1 est différente de celle d'un N° d'ADH, le filtrage se fera quand même, mais sans rien donné.

Merci beaucoup de ton aide.
 

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

Re,

A partir de ce que tu écris, dois-je conclure que tu as résolu ton problème ou tu as encore besoin d'aide.
Si tu as besoin d'aide, réexplique moi ce que tu veux faire (tu as 3 macros : macro13, macro15, macro17). Comment s'articulent-t-elles entre elles?
 

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

J'ai toujours mon message d'erreur ; pour la macro 17, si je supprime un des Sub, j'ai un autre message d'erreur.
La macro13 se déclenche avec le bouton du formulaire, donc pas de problème pour celle là.
Par contre, la macro15 doit se déclencher lorsqu'une valeur est entrée en B1 (au moyen de la macro17)
Peut être y a t'il moyen de rassembler la macro 15 et 17 en une seule ?
 

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

Bonsoir,

J'ai regroupé les deux macros dans une seule visible de la façon suivante :
Click droit sur le nom de l'onglet : Saisie NC / visualiser le code
elle s'active dès lors qu'une valeur est saisie dans la cellule B1 (y compris s'il s'agit du même nombre que celui déjà présent)
La procédure plante car je pense que la procédure récupérée sur la macro 15 plantait déjà. Question : que veux-tu faire exactement :
un premier filtre sur la colonne ADH (pour la valeur 30 par exemple) suivi
d'un deuxième filtre pour retenir les valeurs supérieures à 0 dans la colonne N°NC

(ce que ne peut faire la procédure telle qu'écrite)

A préciser ?
 

Pièces jointes

  • passepasse.xls
    427.5 KB · Affichages: 128
  • passepasse.xls
    427.5 KB · Affichages: 119
  • passepasse.xls
    427.5 KB · Affichages: 128

Gardien de phare

XLDnaute Accro
Re : Correction code macro : erreur de compilation End Sub attendu

Bonjour,
Pas tout compris...
Tu ne peux pas avoir une macro évènementielle imbriquée dans ta macro 17

Donc dans la feuille tu mets le code évènementiel :
VB:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("B1")) Is Nothing Then macro15
End Sub
Dans un module, tu mets ta macro15, par exemple :
VB:
Sub macro15()
MsgBox "Coucou"
End Sub

Edit : bonjour Chalet, croisement...
 

01passepasse

XLDnaute Nouveau
Re : Correction code macro : erreur de compilation End Sub attendu

Bonjour

je reprends le fil d'hier soir.
Merci à Chalet et à Gdp de s'occuper de mon pbl.
J'ai essayé vos solutions, mais maintenant c'est la macro15 qui beug (elle ne semblait pas beuger hier).
Pour répondre à ton dernier message Chalet, en effet je souhaite un premier filtre sur la colonne ADH (pour la valeur 30 par exemple) suivi d'un deuxième filtre pour retenir les valeurs supérieures à 0 dans la colonne N°NC
 

CHALET53

XLDnaute Barbatruc
Re : Correction code macro : erreur de compilation End Sub attendu

bonjour,

J'ai modifié la macro associée à la feuille Saisie NC
J'ai nommé :
crit1 (M33)
crit2 (N33)

Par contre, si le nombre de lignes de la feuille Base devait augmenter, il faudrait mettre en variable la plage de la macro afin qu'elle s'ajuste au nombre de lignes

a+
 

Pièces jointes

  • passepasse.xls
    428 KB · Affichages: 69
  • passepasse.xls
    428 KB · Affichages: 77
  • passepasse.xls
    428 KB · Affichages: 81

Discussions similaires

Réponses
3
Affichages
501

Statistiques des forums

Discussions
312 104
Messages
2 085 332
Membres
102 864
dernier inscrit
abderrashmaen