petit bug dans une boucle vba

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:D
 

Pièces jointes

  • bzh2.xls
    242 KB · Affichages: 40
  • bzh2.xls
    242 KB · Affichages: 51
  • bzh2.xls
    242 KB · Affichages: 56

mutzik

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

Paritec

XLDnaute Barbatruc
Re : petit bug dans une boucle vba

Bonjour BZ56 Mutzig:eek: 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:eek:
 

Pièces jointes

  • bzh2 V1.xls
    320.5 KB · Affichages: 34

Papou-net

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

BZH56

XLDnaute Occasionnel
Resolu : petit bug dans une boucle vba

Bonjour BZ56 Mutzig:eek: 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:eek:
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é...:eek::eek:
:DDom:D
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 243
Membres
103 497
dernier inscrit
JP9231