Modification macro calcul

Bonjour,

j'aurais besoin de l'aide de quelqu'un car j'ai fait une erreur sur une macro que j'ai modifié et je n'arrive a rien.

Je veux faire la somme de 2 colonnes D+F (jusqu'à la dernière ligne non vide) à partir de la ligne 4 et afficher le résultat dans la colonne E.

Les problèmes:

  • la macro ne fonctionne pas
  • si je reclique sur le bouton qui execute la macro, une colonne se crée, je sais pas comment y remédier.

Si une âme charitable veux bien me donner un coup de main je vous en serais reconnaissent.

3classeur14.xlsm (19.50 Ko)

Bonsoir,

Sub Traitement()
    Dim LastLig As Long, i As Long, T As Long
    Dim Tb
    T = Timer
    Application.ScreenUpdating = False
    With Worksheets(1)
        .Columns(5).Insert 'Faudrait sans doute pas que D soit déjà vide !
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row 'En col.A=> résultat = 1 !
        Tb = .Range("D1:F" & LastLig) 'Tableau de 1 ligne (voir ci-dessus) et 3 colonnes
        Tb(4, 6) = "1" 'Tb ligne 4 colonne 6 n'existe pas ! [Nb-ne jamais mettre nombres entre guillemets!]
        For i = 4 To LastLig
            Tb(i, 5) = Tb(i, 4) + Tb(i, 6)
        Next i
        .Range("D1:F" & LastLig) = Tb
    End With
End Sub

Cordialement.

Bonsoir MFerrand,

Pourrais-tu m'indiquer à quoi doit ressemble ma macro avec les corrections car j'ai changé des valeurs suivant les indications que tu as laissées mais ça ne fonctionne toujours .

Essaie ainsi :

Sub Traitement()
    Dim LastLig As Long, i As Long, Tb()
    With Worksheets(1)
        LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
        ReDim Tb(1 To LastLig, 1 To 1): .Cells(4, 5) = 1
        For i = 4 To LastLig
            Tb(i, 1) = .Cells(i, 4) + .Cells(i, 5)
        Next i
        Application.ScreenUpdating = False
        .Columns(5).Insert
        .Range("E1").Resize(LastLig).Value = Tb
        Application.ScreenUpdating = True
    End With
End Sub

Cordialement.


NB- J'ai supprimé T qui 'avait aucune raison d'être dans ce fichier...

Bonsoir,

Je viens d'essayer t'as macro mais elle ne fonction pas correctement.

je place des valeurs dans les colonnes D et F, et lorsque j'execute la macro deux choses se passent:

1- des valeurs apparaissent dans la colonne E mais ça n'est pas la somme E4=D4+F4, E5=D5+F5 ...

2-la colonne F est décalé d'une colonne et dans la cellule F4 il y a la valeur 1

Saurais-tu comment corriger ces problèmes?

Evidemment si tu fais autre chose que ce qui était indiqué au départ où tu insérais une colonne !

je place des valeurs dans les colonnes D et F, et lorsque j'execute la macro deux choses se passent:

L'insertion d'une colonne en E impliquait que la colonne F était initialement en E !

Si la colonne E préexiste vide, il ne faut donc pas insérer de colonne.

Et dans F4 il y a 1 parce que dans la macro tu mettais 1 !

La voilà sans insertion de colonne et sans modif. de F4 :

Sub Traitement()
    Dim LastLig As Long, i As Long, Tb()
    With Worksheets(1)
        LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
        ReDim Tb(1 To LastLig, 1 To 1)
        For i = 4 To LastLig
            Tb(i, 1) = .Cells(i, 4) + .Cells(i, 6)
        Next i
        Application.ScreenUpdating = False
        .Range("E1").Resize(LastLig).Value = Tb
        Application.ScreenUpdating = True
    End With
End Sub

Tu vas peut-être me dire que tu totalises qu'à partir de la ligne 5 (bien qu'il était écrit 4 au départ) ! Dans ce cas tu boucles à partir de 5 au lieu de 4 !!

Re,

excuse moi si je me suis emmêler les pinceaux.

En tout cas la macro fonctionne avec tes modifications.

merci

Rechercher des sujets similaires à "modification macro calcul"