Il ne s'affiche que les 2 dernieres lignes de la macro

[Résolu]
Signaler
Messages postés
61
Date d'inscription
jeudi 19 mai 2005
Statut
Membre
Dernière intervention
1 juin 2014
-
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
-
Bonsoir à tous,

Sur la macro ci dessous à l'éxécution il ne s'affiche que le dernier compte et le total. Je ne comprends pas pourquoi car j'ai initialisé les variables y et y2 au tout début du tableau.
Pourrais t'on m'expliquer pourquoi celà ne fonctionne pas ?
Merci d'avance pour votre aide

Sub TransfertAutProdexploit()
Worksheets("Balance").Activate

Dim y As Integer ' ligne dans feuille "Balance N"
Dim y2 As Integer ' Ligne dans feuille "Balance"

Dim total_annee_1 As Long
Dim total_annee_2 As Long

total_annee_1 = 0 ' Initialisation des variables
total_annee_2 = 0

y = 9
y2 = 11


Do While Sheets("BalanceN").Cells(y, 1).Value <> "" ' la boucle s'arrete quand la cellule
' est vide
Sheets("BalanceN").Cells(y, 1).Copy ' copie du n° de compte
Sheets("Balance").Cells(y2, 1).PasteSpecial xlPasteValues


Sheets("BalanceN").Cells(y, 2).Copy ' copie de l'intitulé du compte
Sheets("Balance").Cells(y2, 2).PasteSpecial xlPasteValues

Sheets("BalanceN").Cells(y, 5).Copy ' copie de la valeur "Débit" du compte exercice N
Sheets("Balance").Cells(y2, 3).PasteSpecial xlPasteValues
Sheets("Balance").Cells(y2, 3).NumberFormat = "# ##0.00"

Sheets("BalanceN").Cells(y, 6).Copy ' copie de la valeur "Crébit" du compte exercice N
Sheets("Balance").Cells(y2, 4).PasteSpecial xlPasteValues
Sheets("Balance").Cells(y2, 4).NumberFormat = "# ##0.00"

total_annee_1 = total_annee_1 + Sheets("Balance").Cells(y2, 4).Value
total_annee_2 = total_annee_2 + Sheets("Balance").Cells(y2, 3).Value

y = y + 1 ' Compteur de la boucle, on incremente de 1

Loop ' fin de la boucle

' Code qui trace les cases Total + somme des cellules et variation

y2 = y2 + 1

Sheets("Balance").Cells(y2, 1).Value = "TOTAL" ' affectation de valeur à une cellule

Sheets("Balance").Cells(y2, 3).Value = total_annee_2
Sheets("Balance").Cells(y2, 3).NumberFormat = "# ##0.00" ' definition du format de la cellule

Sheets("Balance").Cells(y2, 4).Value = total_annee_1
Sheets("Balance").Cells(y2, 4).NumberFormat = "# ##0.00"

End Sub

1 réponse

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

la ligne y2=y2+1 etait mal placee... donc voici le code corrige et simplifie

Sub TransfertAutProdexploit()
   Worksheets("Balance").Activate
   
    Dim y As Integer ' ligne dans feuille "Balance N"
    Dim y2 As Integer ' Ligne dans feuille "Balance"
   
    Dim total_annee_1 As Long
    Dim total_annee_2 As Long

    total_annee_1 = 0 ' Initialisation des variables
    total_annee_2 = 0
   
    y = 9
    y2 = 11
   
    With Sheets("Balance") 'ATENTION a partir d' ici tous les points sont OBLIGATOIRE
        Do While Sheets("BalanceN").Cells(y, 1).Value <> "" ' la boucle s'arrete quand la cellule est vide

            .Range("A" & y2 & ":B" & y2).Value = Sheets("BalanceN").Range("A" & y & ":B" & y).Value
   
            .Range("c" & y2 & ":d" & y2).Value = Sheets("BalanceN").Range("e" & y & ":f" & y).Value

            .Range("c" & y2 & ":d" & y2).NumberFormat = "# ##0.00"
   
            total_annee_1 = total_annee_1 + .Cells(y2, 4).Value
            total_annee_2 = total_annee_2 + .Cells(y2, 3).Value
         
            y = y + 1 ' Compteur de la boucle, on incremente de 1
            y2 = y2 + 1
       
        Loop ' fin de la boucle
       
        ' Code qui trace les cases Total + somme des cellules et variation

        .Cells(y2, 1).Value = "TOTAL" ' affectation de valeur à une cellule
       
        .Cells(y2, 4).Value = total_annee_1
        .Cells(y2, 3).Value = total_annee_2
        .Range("c" & y2 & ":d" & y2).NumberFormat = "# ##0.00" ' definition du format des cellules
       
    End With
End Sub

A+