Den skal slå op i den fil man står på i kolonne to og hvis der findes en fil med denne betegnelse(kundenr+v) skal den smide nogle data over i filen. derer omkring 100 kundenumre i kolonne 2 og tilsvarende filer
Ja jeg har en masse kundefiler der ligger i samme mappe.
Og så har jeg et stort ark der indeholder en masse data for alle kunderne I kolonne B4 - B.. står kundenummeret feks 2000 I kolonne c står kundenummer I d står feks kundekonceptet
Disse skal så overføres til en masse filer med kundenummer +v dvs 2000v
uhhh nu skal jeg lige tænke Eksempel B1:B110(eller mere - så mange rækker der nu er) til filer af navn kundenummer+v felt c3 C1:C110(eller mere - så mange rækker der nu er) til filer af navn kundenummer+v felt c11 Den vil jeg overfører fra(og hvor knappen aktiveres). Hedder version og ligger i mappen \\sti\versionsstyring\ dvs
De enkelte filer ligger i samme mappe.
Men det samme skal gøres til nogle andre filer der ligger på mappen \\sti\ Og her er filnavnene kundenummer uden v dvs bare 2000 som eksempel.
Forsøg på udspil - måske kan det hjælpe lidt på vej - er lidt usikker på om det er den rigtige indgangsvinkel - ellers sig til: Koden indlægges i Datafilen
Const DFræk1 = 3 Const Vsti = "C:\instruktioner\version\" 'tilpasses Dim DFantalRæk Sub data() Dim knr Rem find sidste række i DATAFIL ActiveWorkbook.Sheets(1).Activate DFantalRæk = ActiveCell.SpecialCells(xlLastCell).Row
For ræk = DFræk1 To DFantalRæk knr = Cells(ræk, 2) If knr <> "" Then
Rem Undersøg om filen KUNDENR+v findes If findesVfil(CStr(knr) & "v") = True Then
Rem Hvis ja - opdater v-FILEN opdaterVfil CStr(knr) & "v.xls", ræk End If End If Next ræk
MsgBox ("Opdatering af V-filer afsluttet") End Sub Private Function findesVfil(kid) Dim fs, f, f1, fc, s
Rem Søg efter versions-fil Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(Vsti) Set fc = f.Files For Each f1 In fc If InStr(f1.Name, kid) = 1 Then findesVfil = True Exit Function End If Next findesVfil = False End Function Private Sub opdaterVfil(kid, ræk) Dim xls Set xls = CreateObject("Excel.application") With xls
Rem Åbn V-filen .Workbooks.Open Vsti + kid .Sheets(1).Cells(4, 5) = Cells(ræk, 5) 'Fra DATAFIL overføres Kolonne E & F til v-fil .Sheets(1).Cells(5, 5) = Cells(ræk, 6) .Application.DisplayAlerts = False .ActiveWorkbook.Save End With
Rem Lukker v-fil-objektet xls.ActiveWorkbook.Close xls.Application.Quit Set xls = Nothing End Sub
Og ja de enkelte filer er skrivebeskyttet. Det må være her den fejler Dvs når man kører makroen og sætter data ind skal den låse op og igen låse når den lukkes ned igen.
det fungerer fint - men en lille detalje. ville det være muligt at man kunne få en fejlmeddelse med de filer den ikke kunne finde hvis der er nogle. Har fået den tilrettet også så den låser filer op og i.
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.