2010-07-28 4 views
1

Je suis relativement nouveau dans le codage VBA et j'espérais que vous pourriez m'aider avec le problème suivant.Sélection et collage conditionnel dans Excel

Je cherche la meilleure façon d'organiser les éléments suivants:

d'un ensemble de données que je reçois différentes sortes de documents (tous ont un certain type de document) avec leurs informations (par exemple le nom du client, adresse, montant, TVA, ...). A partir de ce fichier, je veux sélectionner certains types de documents (par exemple DG, EG, SA, ...) qui reportent chaque fois et copier coller ces lignes se rapportant à ces éléments.

par exemple. des données que je reçois

Nom du client Date Montant taxe Discount Doc Type de

25739484 Bert 01/01/2010 100 15% 2% EG

Maintenant, ma question est:

  1. Quel est le moyen le plus simple de dire pour quels types de documents je veux que les données soient sélectionnées et collées? (Ce fichier est à réutiliser à travers l'entreprise). Laisser les utilisateurs les mettre dans des cellules différentes?
  2. En fonction des types de document que les utilisateurs sélectionnent, comment puis-je faire en sorte que la macro sélectionne ces lignes et les copie dans un nouveau fichier?

Merci beaucoup!

Ellen

Répondre

0

Veuillez noter que ce n'est pas complet et je ne l'ai pas testé complètement. J'espère que cela vous aidera à démarrer.

Dim dt As String 
Dim ws As Worksheet 
Dim cnt As Long 
Dim done As Boolean 
Dim emptycount As Long 

'ask the user for the doc type 
dt = InputBox("Enter the doc type") 

'get the active sheet 
ws = ThisWorkbook.ActiveSheet 

If dt <> "" Then 
    'loop over rows 
    Do While Not done 
     cnt = cnt + 1 
     'compare the doc type column to the doc type they selected 
     If ws.Cells(cnt, 6) = dt Then 
      'copy the row here 
     End If 

     'keep track of "empty" rows, after 1000 emptys, exit the loop 
     If ws.Cells(cnt, 6) = "" Then emptycount = emptycount + 1 
     If emptycount = 1000 Then done = True 
    Loop 
End If