Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Aide au lancement d'une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jeralpha

XLDnaute Nouveau
Bonsoir,
Je sollicite votre aide sur un projet de modernisation d'un fichier de caisse.
J'ai modifié le code selon mes compétences relativement courte en VBA, mais je pense être aux portes de ma solution.
Cela dit, je n'arrive pas à "lancer la machine" si je puis dire.
Si l'un d'entre vous avait la gentillesse de regarder ou est ma (ou mes fautes), cela m'aiderai vraiment.

Dans l'onglet "récap", il y a 2 boutons prêt à l'action mais il y a un bloquage quelque part. Je joint le fichier.


Merci d'avance
 

Pièces jointes

Hello

N'y aurait il pas un soucis sur le nom de tes procédures?

Normale que dans les deux modules, les procédures se nomment pareil?

J'ai modifié, le nom des procédures et tu avais le nom de la feuille recap, qui avait un espace a la fin, d'où une erreur dans la suite de la procédure.

Il y a encore des erreur avec le premier bouton, et le deuxieme bouton a l'aire de fonctionner (Pas d'erreur).

Test.

G'Claire
 

Pièces jointes

Dernière édition:
Salut G'Claire

Merci de ta réponse.
Effectivement, je viens de les modifier. C'est mieux mais j'ai une erreur sur ma première procédure :
"Erreur de compilation: End With attendu" avec le End Sub surligné
La seconde ne se lance pas.
 
Bonsoir tous,
Onglet recap à un espace à la fin donc à renommer
Supprimer le module2
en macro manque End with
Next i
End With ' manque ici après Next i
Bon la macro pas bien au top
Bruno

Bonsoir Bruno

Merci de ta réponse également.

J'imagine bien que ma procédure doit ressembler à du bricolage mais j'essai de faire avec mes moyens et la je suis un peu perdu !!

Alors je viens de renommer l'onglet récap (sans espace) puis ajouter le End with après le Next i en module 1.
Du coup mo problème change et j'ai maintenant un problème de date. (je joins le fichier corrigé)
Par contre je ne saisi pas bien pourquoi supprimer le module 2. C'est une autre procédure pour aller chercher d'autre infos.
Tu pense qu'il faut tout mettre sur le module 1, c'est bien ca ?

Merci encore

Jérôme
 

Pièces jointes

Désolé G'Claire mais le fichier s'ouvre en erreur. Excel passe en récupération et supprime les modules
 
Perso je mets toutes mes macro en Module1.
Essaye ceci
Bruno
VB:
Sub GW_lance_1a31()
    Dim dtDateDeb As Date
    Dim dtDateFin As Date

'les refacturation se calent ˆ partir de la ligne 34 de l'onglet recap :

ligne2 = 34

With Sheets(Sheets.Count)
        For i = 4 To 34
            ' mise en place de la recap refacturation, une pour le midi et une pour le soir
            drapeau = False
            For J = 14 To 16
                If Sheets(i).Range("H" & J).Value > 0 Then
                    If drapeau = False Then
                        .Range("A" & ligne2) = Sheets(i).Range("C2")
                        drapeau = True
                    End If
                    .Range("B" & ligne2) = Sheets(i).Range("C" & J)
                    .Range("F" & ligne2) = Sheets(i).Range("D" & J)
                    .Range("J" & ligne2) = Sheets(i).Range("H" & J)
                    ligne2 = ligne2 + 1
                End If
            Next J
            For J = 41 To 43
If Sheets(i).Range("H" & J).Value > 0 Then
                    If drapeau = False Then
                        .Range("A" & ligne2) = Sheets(i).Range("C2")
                        drapeau = True
                    End If
                    .Range("B" & ligne2) = Sheets(i).Range("C" & J)
                    .Range("F" & ligne2) = Sheets(i).Range("D" & J)
                    .Range("J" & ligne2) = Sheets(i).Range("H" & J)
                    ligne2 = ligne2 + 1
                End If
            Next J
        Next i

End With
        ' <<<< Debut : Partie de procedure pour la periode du 01 au 31 du mois
        ' Recuperation de la date de debut et de fin de traitement
        With Worksheets("recap")
            dtDateDeb = Format(.Range("D2").Value, "dd/mm/yy")
            dtDateFin = Format(.Range("D3").Value, "dd/mm/yy")
        End With
End Sub
 

Ok merci Bruno
Je comprend que tu as bien simplifié tout ça !! J'apprend au passage et je t'en remercie.
J'ai appliqué ta procédure. Le code ne se met pas en erreur mais je n'ai pas de résultats non plus. Désolé !. On doit pourtant pas en être très loin !
Je joins le fichier modifié.
Autre point : si je colle mon module 2 dans le module 1 je le met à la fin entre mon End With et mon End Sub , c'est bien ca ?

Jérôme
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…