petit bug dans une boucle vba

  • Initiateur de la discussion Initiateur de la discussion BZH56
  • Date de début Date de début

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 !

BZH56

XLDnaute Occasionnel
bonjour
j ai une macro qui me recopie des donnees en fonction du nombre de jour du mois et tout va bien sauf pour les jours du mois ou je bloque sur ma boucle qui me recopie un jour de moins et je tourne en rond pour trouver cette coquille


voir exemple ci joint la macro 'nouveau mois" a activer

merci et bonne journee a tous😀
 

Pièces jointes

Re : petit bug dans une boucle vba

bonjour

un inputbox renvoie une valeur texte

il faut rajouter

' Copie de la liste des agents en fonction du nombre de jours du mois
nbj = Application.InputBox("Entrez le nombre de jour du mois :", "Préparation nouveau mois")
nbj = CDbl(nbj) 'convertit la valeur texte en numérique
L = nbcrc * nbj
 
Re : petit bug dans une boucle vba

Bonjour BZ56 Mutzig😱 le forum
ton fichier en retour avec le recopie des 31 jours !!!!
mais le problème est dans la sélection de ta dernière ligne
enfin si le problème était les 31 absent dans les 40 dernières lignes puisque, il faut deviner ce que tu veux, rien est expliqué dans le fichier!!
a+
Papou😱
 

Pièces jointes

Re : petit bug dans une boucle vba

Bonjour BZH56,

Voici ta macro modifiée et allégée :

Code:
Sub nouveau_mois()
    Sheets("modele").Select
'nettoyage
Range("A2:D1300,F2:F1300,H2:H1300").ClearContents
'  Suspension affichage intermediaire et calcul automatique
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
   Dim nbcrc, L, m As Integer
   nbcrc = 39
' Copie de la liste des agents en fonction du nombre de jours du mois
    nbj = Application.InputBox("Entrez le nombre de jour du mois :", "Préparation nouveau mois")
For i = 2 To (nbj * nbcrc + 1) Step nbcrc
'Zone de recopie
    With Sheets("tables")
      .Range("A2:E" & .Range("A65").End(xlUp).Row).Copy
    End With
    Range("A" & i).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
'Copie des dates
    Range(Cells(i, 6), Cells(i + 38, 6)).Value = ((i + 1) / nbcrc) + 1
Next i
    [A1].Select
 '  Rétablissement  affichage
    Application.ScreenUpdating = True
End Sub

(J'ai supprimé les lignes blanches pour alléger le message).

Remarques :

Tu n'as pas besoin de sélectionner des cellules pour agir dessus.

Boucle "j" supprimée : adressage direct des cellules de mois en une seule ligne

Bonne journée.

Cordialement.

Edit : bonjour mutzik, Paritec.
 
Dernière édition:
Resolu : petit bug dans une boucle vba

Bonjour BZ56 Mutzig😱 le forum
ton fichier en retour avec le recopie des 31 jours !!!!
mais le problème est dans la sélection de ta dernière ligne
enfin si le problème était les 31 absent dans les 40 dernières lignes puisque, il faut deviner ce que tu veux, rien est expliqué dans le fichier!!
a+
Papou😱
Paritec,Papou,Mutzik-merci de votre contribution et excusez moi , si je suis reste avare en commentaires. En allégeant a l’extrême le fichier initial ,il est reste un peu trop épuré...😱😱
😀Dom😀
 
- 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

Discussions similaires

Réponses
4
Affichages
735
Réponses
8
Affichages
733
Retour