01. oktober 2012 - 14:24Der er
3 kommentarer og 1 løsning
Automatisk opdatering fra et ark til andre ark
Hej,
Jeg er igang med at lave et regneark, hvor jeg skal tage en masse data omkring kunder fra et andet program (navision). Når disse er kopieret fra navision ind i excel i eks. ark2, er det så muligt at gøre sådan, at de kunder med eksempelvis landekoden DK, automatisk bliver placeret i et nyt ark som hedder DK, landekode GB i ark GB osv.?? Tænkte dette evt. kunne gøres vha. af en VBA kode eller sådan noget??
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Indtil videre er "nationsarkene" ikke lavet, da jeg ikk var sikker på det var muligt!! Men jeg kan lige få lavet excel-filen, med de nødvendige "nationsark" og så sende den til dig..
Skal jeg også have lagt alle kunde dataen ind, eller kan du godt bare lave koden uden disse er lagt ind endnu?? Altså kan lave nogle overordnede overskrifter, så du ved hvordan dataen kommer til at ligge i det ark..
Rem version 2 Rem ========= Dim antalRækker As Long, landekode As String, ræk As Long Dim ræk1 As Long 'første række i kundedata
Const fraKolonne = "A" '<-- kan justeres Const tilKolonne = "A" '<-- kan justeres
Const rækx = 7 'første række Nationsark Public Sub fordelPåLandekoder() antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
Rem hentværdi til første række, der skal behandles i næste kørsel ræk1 = Range("F1")
For ræk = ræk1 To antalRækker landekode = Range("D" & ræk) If landekode <> "" Then Range(fraKolonne & ræk & ":" & tilKolonne & ræk).Select Selection.Copy If findesLandeKode(landekode) = True Then
flytTilLandeKoden Else MsgBox "Landekode: " & landekode & " findes ikke" End If End If Next ræk
Rem opdater sidst behandlede række+1 Range("F1") = ræk End Sub Private Function findesLandeKode(landekode) On Error GoTo landeKodeMangler Sheets(landekode).Activate findesLandeKode = True Exit Function
landeKodeMangler: findesLandeKode = False End Function Private Sub flytTilLandeKoden() Dim ræk For ræk = rækx To 65000 If ActiveSheet.Range("A" & ræk) = "" Then ActiveSheet.Range("A" & ræk).Select ActiveSheet.Paste
Sheets("Kundedata").Activate Application.CutCopyMode = False Exit Sub End If Next ræk End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
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.