2013-06-26 3 views
1

J'essaie donc d'extraire des informations d'une colonne dans chaque feuille de mon classeur. Il y a actuellement 506 fiches. Chacun a un nombre différent de rangées et chaque feuille a son propre nom unique. Les données de chaque feuille que je veux commencer à la ligne 8, et il est dans la colonne J. J'essaie d'imprimer tous ces à la colonne C dans une page que j'ai appelé test qui est dans le même classeur mais n'est pas compté dans le 506 les feuilles que j'ai mentionnées plus tôt. Voilà ce que j'ai écrit jusqu'à présent:Excel VBA Macro: Tenter d'écrire quelque chose pour extraire des données de plusieurs feuilles de calcul en une seule (conditions plus difficiles à l'intérieur)

Sub Test() 
Columns(3).Insert 
For i = 1 To i = 506 
    Do While Worksheets(i).Cells(i + 7, 10) <> Null 
     Worksheets("test").Cells(i, 3) = Worksheets(i).Cells(i + 7, 10) 
    Loop 
Next i 

End Sub 

Je viens de commencer avec aujourd'hui, mais j'ai l'expérience avec beaucoup d'autres langues si ma syntaxe peut être un peu trop large.

Merci à l'avance pour tout conseil/conseils que l'un de vous des gens génie peut offrir

+1

'pour i = 1 à 506'! –

+0

Vous essayez d'utiliser 'i' pour deux choses différentes: l'index de la feuille de calcul et l'index de ligne. Essayez de déclarer et d'utiliser 'j' pour l'index des lignes et ayez une boucle interne' For'. Aussi une cellule vide ne sera pas 'Null' non plus – barrowc

Répondre

0

Votre description a été Diferent de votre code, donc je l'aurez deviné ... Je pense que c'est proche de ce que vous voulez ...

Sub Test() 

    Dim WS_Count As Integer 
    Dim I As Integer 

    WS_Count = ActiveWorkbook.Worksheets.Count 


    For I = 1 To WS_Count 

     ' ONLY IF it is not TEST 
     If ActiveWorkbook.Worksheets(I).Name <> "TEST" Then 
      ActiveWorkbook.Worksheets("TEST").Cells(1, 3) = ActiveWorkbook.Worksheets(I).Cells(7, 10) 

     End If 

    Next I 

    End Sub 
+0

Merci beaucoup, cela a bien fonctionné pour obtenir une rangée. La chose est que je veux obtenir beaucoup de lignes de la colonne J dans chaque feuille. J'ai essayé de faire R_Count = ActiveWorkbook.Worksheets (I) .Rows.Count où R_Count est long et puis il y a une boucle for imbriquée (J) de 8 à R_Count où J est un long. Lorsque j'ai changé Cells (7, 10) en Cells (R_Count, 10) il est sorti comme une boucle infinie et l'application cesse de répondre. Des pensées? –

+0

Je l'ai compris. Merci encore pour la grande aide. –

+0

@DavidHarmon, c'est génial! Pourriez-vous "Accepter" la réponse en cliquant sur la flèche verte à gauche de la réponse et la flèche vers le haut si vous l'avez trouvé "utile"? – Jim

Questions connexes