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

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
569
Réponses
2
Affichages
356
Réponses
4
Affichages
355
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…