15. april 2007 - 21:22Der er
10 kommentarer og 1 løsning
Hente gemt faktura ind i aktiv ark.
Hej Eksperter.
Jeg sidder lige med en lille udfordring.
Jeg har et faktura prg. hvor jeg skal have lavet det sådan at hvis der skal laves en rykker. Så kan jeg skrive faktura nummeret i et felt, og så henter den faktura med det givende nummer.
Den skal kunne se i stien G:\Faktura\excelfakturaDB\
Der inden under er der nogle under mapper med navnene på dem der har købt af mig.
De kunne f.eks. hedde : Kurt hansen, keld iversen.
Under disse navne ligger fakturaene så.
Så stien f.eks. hedder : faktura\excelfaktura\kurt hansen\faktura_1
Der hvor jeg skriver det faktura nummer den skal søge efter, er i feltet D8.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
With Application.FileSearch .LookIn = "G:\Faktura\excelfakturaDB" .SearchSubFolders = True .Filename = strFileName If .Execute > 0 Then strFileName = .FoundFiles(1) Workbooks.Open strFileName Else MsgBox "Kan ikke finde fakturanr. " & fakNR, vbInformation End If End With End Sub
Det jeg søgte var at den skulle åbne den faktura med det nummer man skriver. Så skal den koiper Cellerne A1 til C45 og lægge det ind i den skabelon jeg har i forvejen. Den er magen til, Så der er ikke noget med at skulle flytte på felterne.
Det vba prg. du har givet eks. på, åbner bare fakturaen med det nummer man skriver, uden at flytte den over i den skabelon man står i fra starten.
Håber at du forstår hvad det er jeg mener. Ellers er jeg åben for spørgsmål.
Det jeg mangler at der bliver bygget ind, er en copy / paste funktion. faktura fil den lige har åbnet, skal så lukkes igen. Det er bare for at få ført det over fra fakturaen, så man kan skrive en rykker.
Ja, jeg er klar over, at filen blot bliver åbnet. Men det var nu engang det, du selv gjorde i din kode, så jeg troede egentlig, at du "bare" havde problemer med Filesearch-funktionen.
Hvilket ark skal du så have oplysningerne ind i? Eller skal du kopiere hele arket fra din faktura-fil ind i din aktive fil? Hvilket ark ligger fakturaen i i den netop åbnede fil? Har den "kun" et nummer eller har du navngivet arket?
Jeg kan godt se at jeg nok ikke har forklaret mig ordenligt fra starten. :-\ Men tror at dette kan gøre lidt, for at det er den rigtige løsninge der kommer.
Jeg skal prøve på at komme på siden i løbet af dagen, hvis du skal have flere oplysninger fra mig. :-)
Jeg har den rykkerskabelon ( hvor fanen hedder Rykker ), hvor jeg har en knap på. Når jeg så har skrevet hvilket faktura nr. jeg vil hente, trykker jeg på knappen.
Så åebner den fakturaen med det nummer man har bedt den om. I det ark skal jeg så have oplysningerne i cellerne B4:B7 og A21:C21. ( Fanen på denne skabelon hedder Faktura ) De oplysninger skal så lægges over i det ark der hedder Rykker, altså det ark man startede i (aktive fil ). Når den så har hentet oplysningerne over skal den lukke den netop åbnede fil igen.
Kan evt maile skabelonerne til dig, hvis det kunne hjælpe, at sidde med dem foran dig.
Sub OpenInvoiceFile() Dim objWB As Workbook Dim objWS As Worksheet Dim objInvoiceWB As Workbook Dim objInvoiceWS As Worksheet Dim strFileName As String Dim fakNR As String
Set objWB = ActiveWorkbook Set objWS = objWB.Sheets("Rykker")
With Application.FileSearch .LookIn = "G:\Faktura\excelfakturaDB" .SearchSubFolders = True .Filename = strFileName If .Execute > 0 Then strFileName = .FoundFiles(1) Set objInvoiceWB = Workbooks.Open(strFileName) Set objInvoiceWS = objInvoiceWB.Sheets("Faktura") objInvoiceWS.Range("A21:C21").Copy objWS.Range("A21:C21") objInvoiceWS.Range("B4:B7").Copy objWS.Range("B4:B7") objInvoiceWB.Close False Else MsgBox "Kan ikke finde fakturanr. " & fakNR, vbInformation End If End With
Set objWB = Nothing Set objWS = Nothing Set objInvoiceWB = Nothing Set objInvoiceWS = Nothing End Sub
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.