2017-06-27 1 views
0

J'ai un problème particulier, c'est-à-dire que non seulement les valeurs des lignes et des colonnes changent continuellement, mais que le nombre de lignes varie également; dire n'importe où entre 30 à 70 lignes. J'ai essayé un code (je suis nouveau à exceller vba ...) comme ci-dessous dans lequel j'ai pu copier le code sélectionné sur une autre feuille. C'est parce que, comme la ligne change, la somme de chaque colonne est incorrecte et afin de résoudre ce problème, j'essaie de copier les données de la feuille source vers une autre feuille. Toute aide pour fixer le code est super! .. Merci!Résumer une plage dynamique de plusieurs colonnes et lignes

Structure des données ci-dessous:

A B C 
229 498 134 
119 111 314 
298 265 698 
298 264 124 
427 373 174 
102 532 245 

Le code Excel VBA

Sub dynamicRange() 

Dim startCell As Range, lastRow As Long, lastCol As Long, Ws As Worksheet 

Set Ws = Sheets("N_TS") 
Set startCell = Range("A3") 

lastRow = Ws.cells(Ws.Rows.Count, startCell.Column).End(xlUp).Row 
lastCol = Ws.cells(startCell.Row, Ws.Columns.Count).End(xlToLeft).Column 

Ws.Range(startCell, Ws.cells(lastRow, lastCol)).Select 
Selection.Select 
Selection.Copy Sheets("Sheet3").Range("A1") 

End Sub 

Remarque - Il est au-dessus End Sub, que je ne sais pas comment écrire le code pour résumer tout les colonnes simultanément comme une plage ...

+0

, vous voulez calculer la somme * * de toutes les entrées de la plage? –

+0

Pour être plus clair, je m'attends à voir la somme de chaque colonne dans la même colonne. Comme je l'ai expliqué, la ligne change (parfois à 4 ou même 10 de moins et ensuite dans une minute ou plus, serait ajouté.Il est basé sur les entrées de journal des utilisateurs.J'espère que je l'ai expliqué vivement .... Merci – Prabhu

Répondre

0

ne sait pas comment écrire le code pour résumer toutes les colonnes simultanément comme une plage

Laissez tomber les trois dernières lignes et mettre ceci:

With Sheets("Sheet3").Range("A1").Resize(lastCol) 
    .Formula = "=SUM('N_TS'!A3:A" & lastRow & ")" 
    .Value = .Value 
End With 
+0

Salut, le code ne calcule que la somme de (?) Impossible de comprendre comment est venu ce qui suit ...... A1-1244, A2-1125, A3-827 comme une seule colonne.En fait, depuis la feuille N_TS La ligne varie de façon dynamique à mesure que les données transitent, je pensais copier les données jusqu'à la dernière ligne vers une nouvelle feuille "3" et ensuite remonter toutes les colonnes de la feuille 3. Cette formule ne sert pas mon but ... – Prabhu

+0

@Prabhu essayez l'édition. –