Copier des données à partir d'une feuille excel à une autre (complexe) à l'aide de VBA basé sur le nom de la colonne

Je suis très nouveau pour VBA et après 5 heures de visionnage de vidéos et de Googler, je pense que c'est juste trop au-dessus de ma tête... toute aide est très appréciée.

Donc, j'ai 2 feuilles de calcul excel: Feuil1 et Feuil2. J'ai un O/N de la colonne dans la feuille "Sheet1" et si la colonne = "Y" alors je veux copier toutes les données de la ligne qui correspond à un nom de colonne dans la Feuil2.

Sheet1
Product     Price     SalesPerson    Date    Commission     Y/N
  A          $25         John       1/9/15      $3           Y 
  B          $20         John       1/12/15     $2           N  
  B          $15         Brad       1/5/15      $1           Y

Sheet2
Price     Product     Date     Salesperson   

Ainsi, pour chaque temps Y/N = Y puis copier les données qui correspond plus à feuil2 et cela jusqu'à ce que la feuille sheet1.col1 est nulle (en boucle). Le résultat serait celui-ci:

Sheet2
Price     Product     Date     Salesperson
 $25         A       1/9/15        John
 $15         B       1/5/15        Brad

Les colonnes ne sont pas dans l'ordre et sont bien trop nombreux pour entrer manuellement. Puis en dernier, mais pas moins l'O/N colonne devra clair sur terminer. J'ai essayé de modifier ce avec pas de chance:

Sub CopyHeaders()
Dim header As Range, headers As Range
Set headers = Worksheets("Sheet1").Range("A1:Z1")

For Each header In headers
    If GetHeaderColumn(header.Value) > 0 Then
        Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=Worksheets("Sheet2").Cells(2, GetHeaderColumn(header.Value)).End(xlDown).Offset(1, 0)
    End If
Next
End Sub

Function GetHeaderColumn(header As String) As Integer
Dim headers As Range
Set headers = Worksheets("Sheet2").Range("A1:Z1")
GetHeaderColumn = IIf(IsNumeric(Application.Match(header, headers, 0)), Application.Match(header, headers, 0), 0)
End Function

Ceci a été conçu pour faire quelque chose de différent que ce que je suis en train de faire et je ne pense pas que je suis capable de changer cela fonctionne pour moi. Comment wold-je faire cela?

  • Je vais faire plus de recherche et de mise à jour, mais je n'ai pas été en mesure d'obtenir ce code fonctionne... probablement en raison de la feuil2 contenant des colonnes qui ne sont pas dans la feuille sheet1
InformationsquelleAutor user3486773 | 2015-01-20