Just nu i M3-nätverket
Gå till innehåll

Medel från två olika celler, ifyllda ibland


Flyckten

Rekommendera Poster

Okej, fixat lite som du sa. Varför använda Variant och inte String, vad gör det för skillnad egentligen?

 

Sen vill inte makrot klaffa om jag tar bort Sheets("XXX").Select raderna.

 

 

 

Ex: säger felmeddelandet följande: "Körfel blablablabla.... Målområdet finns inte på samma kalkylblad som det i Querytabellen skapats på"

 

Följande kod:

 

'Sheets("Import Axios").Select

With Worksheets("Import Axios")
   .Range("Importfält").ClearContents


      With .QueryTables.Add(Connection:="TEXT;" & filnamn, _
       Destination:=Range("$A$5"))
           .Name = "TEXT;" & filnamn
           .FieldNames = True
           .RowNumbers = False
           .FillAdjacentFormulas = False
           .PreserveFormatting = True
           .RefreshOnFileOpen = False
           .RefreshStyle = xlOverwriteCells
           .SavePassword = False
           .SaveData = True
           .AdjustColumnWidth = True
           .RefreshPeriod = 0
           .TextFilePromptOnRefresh = False
           .TextFilePlatform = 850
           .TextFileStartRow = 1
           .TextFileParseType = xlDelimited
           .TextFileTextQualifier = xlTextQualifierDoubleQuote
           .TextFileConsecutiveDelimiter = True
           .TextFileTabDelimiter = False
           .TextFileSemicolonDelimiter = False
           .TextFileCommaDelimiter = False
           .TextFileSpaceDelimiter = True
           .TextFileColumnDataTypes = Array(2, 1, 2)
           .Refresh BackgroundQuery:=False
       End With

   .Range("cellTrans").FormulaR1C1 = cboTrans
   .Range("cellPeriod").FormulaR1C1 = "'" & cboPeriod
   .Range("importRes").Copy
   '.Range("Importfält").Delete

End With

 

 

Länk till kommentar
Dela på andra webbplatser

Ändra till

With .QueryTables.Add(Connection:="TEXT;" & filnamn, _

Destination:=.Range("$A$5"))

notera punkten så att du referensen till rätt blad.

Om man bara skriver

Range("A1")

skriver man i praktiken

ActiveSheet.Range("A1")

om koden ligger i en modul eller formulär.

Om koden ligger på ett blad blir det istället

Me.Range("A1")

dvs referens till bladet koden ligger på.

Korrekta, absoluta, referenser är bra att ha.

 

Variabelformatet Variant innebär att variabeln kan hålla vad som helst i praktiken, objekt, strängar, tal.

När du tilldelar den ett värde, i detta fallet en sträng eller en boolsk variabel, kommer den anta de format som krävs för att hålla den variabel. I If-satsen har du alltså ett boolskt värde att undersöka vilket är mycket enkelt.

 

och lägg till:

.Refresh BackgroundQuery:=False
[color="#FF0000"].Delete[/color]
End With

så sparas inte frågedefinition.

 

man kan iofs även lägga in

Application.DisplayAlerts = True

för att undertrycka varningsdialoger.

Länk till kommentar
Dela på andra webbplatser

Otroligt stort tack för all din hjälp, fruktansvärt lärorikt och bra !

 

 

Har fått den att fungera som jag vill nu, har ett sista problem som dock verkar svårlöst... När jag sparar mallen säger den att boken innehåller extern data men jag hittar verkligen INGENTING! har rensat och letat som en dåre men hittar inte. Spelar mindre roll men ändå irriterande.

Samtliga ämnen import-mall e (2).zip

Länk till kommentar
Dela på andra webbplatser

Nej och nu försvann också felmeddelandet. Var bara en norsk omstart som behövdes. Tack än en gång för din hjälp. Ser att du är en riktig räv i excel forumet, arbetar du med det väldigt mycket eller bara intresserad? :)

 

Länk till kommentar
Dela på andra webbplatser

En fundering; går det att göra så att mallen enbart går att sparas till .xlsm ?

 

Beta-testar den med personalen som kommer använda den och de sparade den som .xlsx vilket inaktiverar makrona.

 

 

Länk till kommentar
Dela på andra webbplatser

Tvinga någon att spara i visst format kan vara lite krångligt....

 

Bästa är om du kan utbilda personalen att spara i xlsm eller xlsb format.

 

 

Ett alternativ är att du lägger in en fet knapp som det står "Spara..." på som med en egen fildialog tvingar på rätt format.

 

Kanske kanske att man via funktionen

rivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

kan få till en dialog även. Där måste jag dock testa lite innan jag kan säga något, den är lite speciell.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...