report de chiffres (sous macro) qui "chassent"

brewen

XLDnaute Junior
Bonjour le forum,

je viens à vous avec un problème que je trouve très étonnant.
J'ai un fichier dans lequel se reportent des chiffres dans un tableau de récap.
Cela se fait sous un code vba.
Seulement et pour une raison inconnue, certains chiffres se deplacent d'une cellule et faussent les resultats.
Dans mon fichier j'ai surligné les méchants chiffres en jaune dans l'onglet " recap du 1au14 "
j'ai dû également suprimer quelques feuilles pour que le fichier passe sur le forum.

Merci d'avance de votre aide
 

Pièces jointes

  • brewen.zip
    43.4 KB · Affichages: 31
  • brewen.zip
    43.4 KB · Affichages: 30
  • brewen.zip
    43.4 KB · Affichages: 27

skoobi

XLDnaute Barbatruc
Re : report de chiffres (sous macro) qui "chassent"

Bonjour,

Pourrais-tu nous dire quelle macro tu utilises "GW_lance_1a14" (je pense que c'est celle-ci) car elle se trouve dans 2 modules différents.
Et surtout à quel endroit du code il faut regarder, on gagnera du temps.
 

Gael

XLDnaute Barbatruc
Re : report de chiffres (sous macro) qui "chassent"

Bonjour Brewen, bonjour Skoobi,

C'est parceque la variable "Sup" n'est pas réinitialisée et peut prendre la valeur 4 ce qui décale de 2 colonnes le résultat.
en ajoutant Sup=0, la macro marche sans problème

Code:
   If pass = 1 Then pass = 0: lgColChq = lgColChq + 2: [B]sup = 0[/B]
                ' 2me bloc de chèques entre les cellules M48 et Y55
                ' Lignes de 48 à 55

@+

Gael

Par contre en modifiant légèrement le code, on peut simplifier un peu :
Code:
            With Worksheets(strJour)
                ' 1er bloc de chèques entre les colonnes M13 et Y20
                ' Lignes de 13 à 20
                For lgLig = 13 To 55
                    If lgLig < 21 Or lgLig > 47 Then
 
                    ' Colonnes de M à V par pas de 3
                    For lgCol = 13 To 25 Step 3
 
                        ' For lgCol = 13 To 22 Step 3
                        ' If .Range("Y" & lgLig) <> 0 And .Cells(lgLig, lgCol) <> "" Then
                        If .Cells(lgLig, lgCol) <> "" Then
                            Cells(lgLigChq, lgColChq).Value = dtDate
                            Cells(lgLigChq, lgColChq + 2).Value = .Cells(lgLig, lgCol).Value
                            lgLigChq = lgLigChq + 1
                        End If
                        ' Les lignes à afficher ne doivent pas dépasser la ligne 150
                        If lgLigChq > 150 Then
                            lgLigChq = 108
                            lgColChq = lgColChq + 4
                        End If
                    Next lgCol
                    End If
                Next lgLig
           End with

et ça fait la même chose sauf erreur de ma part.

@+

Gael
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
563
Réponses
2
Affichages
330
Réponses
4
Affichages
336

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed