Microsoft 365 Aide au lancement d'une macro

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

  • caisses 2020 v3.xlsm
    268.2 KB · Affichages: 5

GClaire

XLDnaute Occasionnel
Supporter XLD
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

  • caisses 2020 v3.xlsm
    264 KB · Affichages: 3
Dernière édition:

Jeralpha

XLDnaute Nouveau
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

  • caisses 2020 v3.xlsm
    277.9 KB · Affichages: 1

Jeralpha

XLDnaute Nouveau
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
Désolé G'Claire mais le fichier s'ouvre en erreur. Excel passe en récupération et supprime les modules
 

youky(BJ)

XLDnaute Barbatruc
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
 

Jeralpha

XLDnaute Nouveau
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

  • caisses 2020 v3.xlsm
    263.6 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu