12. november 2005 - 14:01Der er
9 kommentarer og 2 løsninger
Ekspert udfodring?
Hej! Hver måned får jeg en fil med 2 kolonner: i kolonne A er kundens nummer og navn, mens i kolonne B er antal kilo han har købt på en måned. eks. A B 145623 Jens Jensen 320 Jeg har en anden fil som jeg kalder salgsoversigt hvor jeg har kolonne A med kundens nr., kolonne B med kundens navn og kolonne c - z er antal kilo som kundens har købt fra januar 2004 frem til nu. A B C(jan.04) d(feb.04) 123456 Nils Jensen 245 300 osv.
Jeg vil gerne at programmet overfører det antal kilo kunden har købt i denne måned til min salgsoversigt fil dvs programmet finder den samme kunde og i kolonne AA skriver det antal kilo kunden har købt. Hvis kunden ikke findes i salgsoversigt så skal der oprettes en ny linie med kunde nr,navn og antal kilo kunden har købt.
Denne makro er ikke testet, så det må du lige selv gøre. Du skal kun have åbnet filen med de nye data. Er der noget du ikke kan finde ud af, så skriv.
Public Sub Exp663895() Const sSalesFile As String = "C:\Temp\SalesView.xls" 'Skal ændres Const sSalesSheetName As String = "Sheet1" 'Skal ændres Dim wkbNew As Excel.Workbook Dim wkbSales As Excel.Workbook Dim wksImport As Excel.Worksheet Dim wksView As Excel.Worksheet Dim lRowFrom As Long Dim lRowTo As Long Dim bFound As Boolean
On Error GoTo CleanUp Set wkbNew = ActiveWorkbook Set wksImport = wkbNew.ActiveSheet Set wksView = Application.Workbooks.Open(Filename:=sSalesFile)
For lRowFrom = 1 To wksImport.UsedRange.Rows.Count bFound = False
For lRowTo = 1 To wksView.UsedRange.Rows.Count
If wksImport.Cells(lRowFrom, 1).Value = _ wksView.Cells(lRowTo, 1).Value Then
If Not bFound Then 'Cellen bliver rød, hvis ikke den er overført til opsummeringsarket wksImport.Cells(lRowFrom, 1).Interior.ColorIndex = 3 End If Next lRowFrom
CleanUp: Set wksImport = Nothing Set wksView = Nothing Set wkbNew = Nothing Set wkbSales = Nothing End Sub
Makroen åbner filen salgsoversigt men overfører ikke tallene.Der kommer ingen fejlmeddelelse. Muligvis skyldes fejlen det her: I mit regneark "update" som jeg får hver måned er kundens nr og kundens navn i samme kolonne nemlig kolonne A, mens i mit ragneark salgsoversigt er kunde nr i kolonne A og kunde navn i kolonne B.
Private Sub CommandButton1_Click() 'Public Sub Exp663895() Const sSalesFile As String = "d:\salgsoversigt.xls" 'Skal ændres Const sSalesSheetName As String = "Ark1" 'Skal ændres ' sCellToWriteIn - Skal ændres hver måned, så der skrives i den ' rigtige kolonne det er nødvendigt fordi kolonnen ikke kan findes ' automatisk, når ikke der er tal i alle celler. Const sCellToWriteIn As String = "Z1" Dim wkbNew As Excel.Workbook Dim wkbSales As Excel.Workbook Dim wksImport As Excel.Worksheet Dim wksView As Excel.Worksheet Dim lRowFrom As Long Dim lRowTo As Long Dim bFound As Boolean
'On Error GoTo CleanUp Set wkbNew = ActiveWorkbook Set wksImport = wkbNew.ActiveSheet Set wkbSales = Application.Workbooks.Open(Filename:=sSalesFile) Set wksView = wkbSales.Worksheets(sSalesSheetName)
' 2-tallet her bestemmer hvilken række det første kundenr findes i (Update-filen) For lRowFrom = 2 To wksImport.UsedRange.Rows.Count bFound = False
' 3-tallet her bestemmer hvilken række det første kundenr findes i (Salgsview-filen) For lRowTo = 3 To wksView.UsedRange.Rows.Count
If Val(wksImport.Cells(lRowFrom, 1).Value) = _ wksView.Cells(lRowTo, 1).Value Then
If Not bFound Then 'Cellen bliver rød, hvis ikke den er overført til opsummeringsarket wksImport.Cells(lRowFrom, 1).Interior.ColorIndex = 3 End If Next lRowFrom
CleanUp: Set wksImport = Nothing Set wksView = Nothing Set wkbNew = Nothing Set wkbSales = Nothing 'End Sub End Sub
Den virker så længe det er en eksisterende kunde, men hvis der er en ny kunde oprettes ikke en ny linie i salgsoverigt filen med kundens navn og mængde. Kunden bliver bare markeret med rødt.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.