PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAUpdate Value, Problem med följande skriptUpdate Value, Problem med följande skript
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-03-16 08:29
 

Hej,

 

Första gången på detta forum, nedanstående script försöker jag att använda och det är till för att hämta information om namn på alla excel filer i en mapp samt hämta information från celler i dokumenten och skriva ut dem i min Grundfil.

Detta fungerar mycket bra, dock så stöter jag på ett problem: När jag kör skriptet så skriver den in filnamnet på första filen och sedan så kommer det upp en popup window som ber mig att "update Value" och då måste jag leta reda på filen som den ska uppdatera värde ifrån För Varje Värde som den ska hämta. Dvs att om jag har 5 excel filer i en mapp och ska hämta information från 3 celler i varje fil så måste jag Browse och dubbelklicka på den filen 3 ggr, dvs en gång för varje fil. Detta resulterar i 15 ggr för fem filer. Jag har nu 50 filer i mappen :(

Om jag klickar på ESC när den frågar mig att uppdatera så kommer det fram #REF!, om jag är inne i filen och sedan går in en av excel filerna så uppdateras det värdet på en gång.

Jag förstår ingenting, har helt kört fast. Det jag vill är att den utan att fråga vart ifrån den ska uppdatera värdet hämtar informationen så att när jag kör skriptet så ska jag inte behöva välja något mer :)

 

Här är skriptet som jag kör:

 

Sub getFileInfo()
    Dim myDir As String, nextFile As String, nextRow As Integer
    myDir = "Q:\Sales\"
    nextFile = Dir(myDir & "*.xls")
    nextRow = 1
    Do While nextFile <> ""
        If InStr(nextFile, "Förarutköp") > 0 Then
            mySheet = "Sheet1"
            myCell = "$A$59"
            youCell = "$F$8"
                                   
        Else
            mySheet = "Köpeavtal"
            myCell = "$I$2"
            youCell = "$B$2"
           
        End If
        Cells(nextRow, 1) = nextFile
        Cells(nextRow, 2).Formula = "='" & myfiles & "[" & nextFile & "]" & mySheet & "'!" & myCell
        Cells(nextRow, 3).Formula = "='" & myfiles & "[" & nextFile & "]" & mySheet & "'!" & youCell
       
        nextRow = nextRow + 1
        nextFile = Dir
    Loop
End Sub

Nytt inlägg
 2009-03-16 10:27
 

Felet bör bero på att du inte anger en fullständig sökväg, det ser ju ut som att du har tänkt att göra det:

Cells(nextRow, 2).Formula = "='" & myfiles & "[" & nextFile & "]" & mySheet & "'!" & myCell

men myfiles är inte definierad i funktionen. Du kanske menade

Cells(nextRow, 2).Formula = "='" & myDir & "[" & nextFile & "]" & mySheet & "'!" & myCell

Ett bra sätt att undvika såna här problem är att använda "Variabler måste deklareras" under Verktyg->Alternativ, vilket gör att "Option Explicit" skrivs först i varje fil (man kan också skriva det själv, och man behöver göra det när modulen redan är skapad. Om det inte var detta som var fel - återkom!

Nytt inlägg
 2009-03-16 10:42
 

Niklas Jansson skrev

Felet bör bero på att du inte anger en fullständig sökväg, det ser ju ut som att du har tänkt att göra det:

Cells(nextRow, 2).Formula = "='" & myfiles & "[" & nextFile & "]" & mySheet & "'!" & myCell

men myfiles är inte definierad i funktionen. Du kanske menade

Cells(nextRow, 2).Formula = "='" & myDir & "[" & nextFile & "]" & mySheet & "'!" & myCell

Ett bra sätt att undvika såna här problem är att använda "Variabler måste deklareras" under Verktyg->Alternativ, vilket gör att "Option Explicit" skrivs först i varje fil (man kan också skriva det själv, och man behöver göra det när modulen redan är skapad. Om det inte var detta som var fel - återkom!

 

Tack, verkligen!

Höll på att bli galen :)

Då kanske jag kan fråga en liten sak som jag försökt att lösa.

Filen i fråga hämtar även ett datum från varje dokument i mappen och jag skulle vilja att det skrivs ut i veckonummer bredvid men får inte det att fungera. Finns det någon möjlig lösning på detta?

Nytt inlägg
 2009-03-16 11:36
 

Precisera gärna "får det inte att fungera".

Veckonummer är generellt ett stort problem, pga att det beräknas olika i många länder. En variant som går är att använda DatePart("ww", datum) i VBA-koden, och ev. justera med de två efterföljande argumenten. En annan är att installera Excel-pluginet "Analysis Toolpak", där finns excelfunktionen VECKONR(). Tyvärr ska ingen av dem ge ett korrekt svar enl. svensk standard. Är det engelska veckonummer så ska det fungera bra, dock.

Det sista alternativet är att skriva en funktion manuellt som räknar ut det korrekt. Om du behöver en sån kan jag se om jag kan leta upp den.

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAUpdate Value, Problem med följande skriptUpdate Value, Problem med följande skript

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter