Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Playlist melodii radio - unde?

P0335 senzor arbore cotit - senzo...

Avocatul Poporului vs European Om...

Recomandari firme pentru draperii...
 Receptie Eutelsat 5 West. Este po...

Poti receptiona semnal de la mai ...

Cabluri HDMI 2.1 de 4m-5m care sa...

Zoom comparat cu Google Meet
 Monitor/Display wireless?

Pornire greoaie dupa cateva zile ...

De la un proiect scris in python ...

Audi A4 B9 quattro 190 CP!
 Tepari la pariuri pe TikTok

Banca imi cere justificativ fondu...

schema pcb ELECTRA CIM150 PAS

Probleme stomac
 

Wizard Import Text File in Excel in VBA

- - - - -
  • Please log in to reply
No replies to this topic

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Se da un fisier brut de intrare, cu numele DECLARATIE.Mxxyy (ex DECLARATIE.M0920 sau DECLARATIE.M1020).

Folosind meniul: File -> Open -> *.* (ca tip de fisiere) -> aleg un fisier text -> Open:
- daca fisierul are continut, se deschide asistentul de import text (step 1/3) etc etc etc.
- daca fisierul exista dar e gol (nu are continut), se deschide un fisier excel vid, avand ca sheet numele fisierul gol ales.

Acum, as vrea ca toata povestea asta sa fie facuta intr-o subrutina (sau functie) in vba (am un buton care imi lanseaza calculatia, si mai am si alte linii de cod care fac chestii).

Daca dau intregistrare macro (sa se genereze automat codul), nu ma ajuta prea mult, pentru ca nu pot opri inregistrarea cat timp mai am asistentul de import deschis.
Stiu ca pot face formatarea tot din cod vba, dar fisierul poate varia ca si continut de la luna la luna (coloana in plus sau in minus) si de aceea vreau ca formatarea sa fie facuta in asistent, de catre utilizator, de fiecare data.

Si am incercat in doua feluri, dar nici una nu imi satisface 100% comportamentul dorit, asa ca apelez la sfatul vostru, al celor mai experimentati.

Varianta 1:
Set fs = CreateObject("Scripting.FileSystemObject")
...
...
FileName = Application.GetOpenFile("Text Files (*.txt), *.txt)

Varianta 2:
FileName = Application.Dialogs(xlDialogOpenText).Show

In ambele variante, m-am gandit la o bucla if pentru a face ceea ce vreau eu:
i) daca nu selectez nimic (inchis fereastra de Open) sa dea un mesaj ca nu s-a selectat nimic si sa nu se intample nimic;
ii) daca selectez un fisier vid, sa dea un mesaj ca fisierul de intrare este gol;
iii) daca are continut, sa apara asistenul de import.

IF-ul (din Sub) l-am gandit asa:
If FileName = False Then
   MsgBox "Nu ati selectat nimic"
   Exit Sub
Else
   If


(si continuarea mai jos, in fct de varianta)

In varianta 1:
Set f = fs.GetFile(FileName)
   If f.Size = 0 Then
	  MsgBox "Fisier vid"
	  Exit Sub
   End If
Else


In varianta 2:
Set oFSO = New Scripting.FileSystemObject
Set oF1 = oFSO.GetFile(FileName)
   If oF1.Size = 0 Then
	  MsgBox "Fisier vid"
	  Exit Sub
   Else


si apoi, daca nu e vid, pe else face/lanseaza calculatia

Problema mea e ca:
- pe varianta 1, daca fisierul txt nu e gol, mi-l deschide direct, dar neformatat (nu mai vad nici un asistent de import, ca asa cum apare cum am povestit la inceput daca as face direct din meniu)
- pe varianta 2, daca fisierul txt e gol, imi crapa ca-mi zice nu stiu ce la Show, pe linia Application.Dialogs(xlDialogOpen).Show

Ce nu e bine? Cum ar trebuie sa fac pentru a avea comportamentul pe care il doresc?

Multumesc

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate