2010-11-08 7 views
0

Je construis une macro pour tracer les rapports créés par COGNOS. Malheureusement, ces rapports sont fournis par une autre équipe.Variables dans des tableaux Excel en VBA

Les données pour les graphiques Excel vient mais les en-têtes peut être changé chaque rapport et le nombre de sources de données changent aussi.

Ce que cela signifie est que dans une semaine, les données pour lundi au vendredi pourraient inclure 6 sources, par exemple. Les colonnes A à G (du lundi - vendredi) et de rangées 1 à 6

La prochaine table de données est produit par COGNOS 2 rangs en dessous de ce, par exemple. Ligne 8

mais la semaine prochaine, il y a 8 sources de données, de sorte que le tableau est beaucoup plus longue et la deuxième table est à la ligne 10

avec un tableau puis-je corriger les graphiques pour y recueillir des données à partir d'un en-tête cellule pour chaque table où jamais il est placé sur l'excel fourni?

+0

Pouvez-vous donner un exemple de ce sous une forme visuelle? la plage de données change-t-elle à chaque fois? – shahkalpesh

+0

Il y a quelques incohérences dans votre description. Par exemple (Lun-Ven) = 5 Deys, et vous utilisez des colonnes (A-G) = 7 colonnes et 6 lignes. S'il vous plaît vérifier votre question et poster un échantillon de capture d'écran. –

Répondre

0

Utilisez cette fonction pour compter les lignes de données dont vous avez besoin de tracer. Transmettez-le à un élément du premier élément de la table et il rétrogradera le nombre de lignes.

Public Function CountRows(ByRef r As Range) As Integer 
    If IsEmpty(r) Then 
     CountRows = 0 
    ElseIf IsEmpty(r.Offset(1, 0)) Then 
     CountRows = 1 
    Else 
     CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.count 
    End If 
End Function 

pour sélectionner une des rangées multiples, cols utilisent Range("A2").Resize(20,8) par exemple pour élargir la gamme de « A2 » pour inclure 20 lignes et 8 colonnes. Le reste que vous mettez en place par programmation en comptant les lignes et les colonnes et en sélectionnant les valeurs appropriées pour vos graphiques. Notez qu'il est préférable de définir les propriétés .XSeries et YSeries d'une série de graphiques en utilisant le style RC. Exemple: .YSeries="='Sheet1'!R2C3:R101C3" où vous définissez les valeurs de texte appropriées en fonction de ce que vous mesurez pour les tables.