salve,
seguendo le indicazioni di anthony riscontro dei problemi;
per alcuni anche se comprendo l'errore non riesco a risolverlo.
la macro che ho registrato ed uso, alla quale ho aggiunto delle linee per adattarla al mio caso,
funziona perfettamente:
- Codice: Seleziona tutto
Sub Macro1()
Sheets("Foglio1").Select
RngIni = Range("B" & Rows.Count).End(xlUp).Row 'linea 1 <<<<<
Range("M1").Value = "numero righe =" & RngIni
Range("B65536").End(xlUp).Offset(1, 0).Select
Set PRIMA_CELLA_VUOTA = Selection
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;K:\1 EXCEL\IMPORTARE ULTIME N RIGHE DA TXT\testo.Txt", _
Destination:=PRIMA_CELLA_VUOTA) 'linea 2 <<<<<<<
.Name = "testo" 'linea 3 <<<<<<<<<<<
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = RngIni - 1 'linea 4 <<<<<<<<<<<<
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(5, 3, 4, 4, 11, 2, 3, 3, 3, 3, 3, 4, 3, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False 'linea 5 <<<<<<<<
End With
Range("A1").Select
End Sub
ho aggiunto ad inizio macro queste due linee:
- Codice: Seleziona tutto
Sub Macro1()
FullNome = Application.GetOpenFilename("(*.txt),*.txt") '<<<Scelta del file
If FullNome = False Then Exit Sub
Sheets("Foglio1").Select
....
e fin qui funziona perchè si apre la commondialog per la scelta del file txt.
come posso modificare queste due linee im modo che la commndialog
si apra sempre in corrispondenza di un hard disk senza dover ogni volta
partire dalla finestra generica che mostra excel?
variante al quesito precedente:
aprire la commondialog con hard disk e cartella precisa:
ad esempio "K:\1 EXCEL\"?
dopo l'apertura della commondialog e la scelta del file txt la macro continua
ma ho errore in varie linee:
se alla linea 1 sostituisco una delle seguenti:
Application.Worksheetfunction.Countif
oppure
Cells(RowsCount,"B").End(xlUp).Row
ricevo errore, e nonostante le modifiche che apporto la macro si blocca.
elimino queste due righe e ritorno ad usare la macro originale,
modificando le linee 2 e 3, in questo modo:
- Codice: Seleziona tutto
ub Macro1()
FullNome = Application.GetOpenFilename("(*.txt),*.txt") '<<<Scelta del file
If FullNome = False Then Exit Sub
Sheets("Foglio1").Select
.......
.......
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;FullNome", _
Destination:=PRIMA_CELLA_VUOTA) ' linea 2 <<<<<<<
.Name = FullNome ' linea 3 <<<<<<<<<<<
.......
......
.Refresh BackgroundQuery:=False 'linea 5 <<<<<<<<
.....
ora ricevo errore alla linea 5 perche la macro non riesce a trovare il file txt da importare;
questo è dovuto, secondo la mia interpretazione,
al fatto che la variabile FullNome contiene l'estensione .txt,
mentre la linea .Name= FullNome deve essere priva di estensione;
perciò come faccio ad eliminare l'estensione dalla variabile FullNome
in moche che poi si abbia .Name= FullNome senza estensione?
saluti e grazie