• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Foutmelding bij: .refresh

Status
Niet open voor verdere reacties.

fwalraven

Gebruiker
Lid geworden
30 apr 2006
Berichten
191
Ik heb een formule gevonden om ieder CSV bestand op blad2 te plaatsen.

Als ik een CSV bestand selecteer dan doet de macro wat er gevraagd wordt.

Maar in plaats van een bestand te kiezen en te annuleren krijg ik een fout melding
en wordt .refresh geel gearceerd.

Graag zou ik zien dat bij annuleren de macro onderbroken wordt met een
msgbox ("Er is geen bestand gekozen")
en bij Oke terug gaat naar blad1 kolom a1.

Frans

Code:
Sub Macro2()
 Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("Blad2") 'set to current worksheet name
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
     .TextFileParseType = xlDelimited
     .TextFileCommaDelimiter = True
    .Refresh  ''Geeft bij annuleren foutmelding
End With
End Sub
 
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
 
Code:
Sub VenA()
  With Sheets("Blad2")
    .Cells.Clear
    strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")
    If strFile <> False Then
      With .QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
      End With
    End If
  End With
End Sub
 
Code:
Sub M_snb()
  with application.filedialog(1)
    if .show then sheets.add , sheets(sheets.count),, .selecteditems(1)
  end with
End Sub
 
Laatst bewerkt:
VenA,

Bedankt.

Ik heb de code aangepast met een msgbox.
Indien dit beter/netter kan, graag een reactie daarover.

Frans

Code:
With Sheets("blad2)
    .Cells.Clear
        strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "KIES HET JUISTE BESTAND!...")
         If strFile = False Then
    If MsgBox("ER IS GEEN BESTAND GEKOZEN!!", vbOkeOnly, "LET OP!!") = vbonly Then
       Sheets("blad1").Select
    Range("A1").Select
        Exit Sub
       End If
       End If
      
     If strFile <> False Then
      With .QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
      End With
    End If
End With
 
En wat doet vbonly?
 
snb,

Uw code werkt wel.

Alleen hij maakt ook een nieuwe map aan met de naam van csv bestand.

Aangezien die bestandnamen nooit exact hetzelfde zijn, krijg ik een probleem met verdere verwerking.
Vanuit blad2 worden bepaalde gegevens overgezet naar blad1.
dit gebeurd met een macro die verwijst naar blad2

De bestandsnaam is de ene keer bv: week50planning en dan weer planning week_50.
Deze bestanden worden per mail toegestuurd en het is maar net wie ze verwerkt heeft.
Frans
 
vbonly bestaat niet als parameter voor MsgBox en vbOkeOnly ook niet.
Je zal vbOkOnly bedoelen.

Maak er dit van:
Code:
If strFile = False Then
    MsgBox "ER IS GEEN BESTAND GEKOZEN!!", vbOKOnly + vbCritical, "LET OP!!"
    Application.Goto Sheets("Blad1").Range("A1")
    Exit Sub
End If
 
Laatst bewerkt:
De MsgBox is overbodig. Daarnaast wordt het gebruik van HOOFDLETTERS door de meeste gebruikers niet gewaardeerd.
 
Edmoor,

Met onderstaande regel in de code werkte het voor mij
Code:
If MsgBox("ER IS GEEN BESTAND GEKOZEN!!", vbOkeOnly, "LET OP!!") = vbonly Then

Maar je laatste optie is zeker zo netjes.

Bedankt.

Frans
 
vbOkeOnly en vbonly bestaan niet.
Dan wordt de default gebruikt omdat je kennelijk geen Option Explicit aan hebt staan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan