• 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.

Macro om 2 delen van een bestandsnaam te kopieren

Status
Niet open voor verdere reacties.

gjvv

Gebruiker
Lid geworden
4 aug 2020
Berichten
5
Hallo,
Ik wil meerdere bestanden openen in een werkblad, waarbij een deel van elke bestandsnaam in een bepaalde cel komt te staan.
Ik heb al macro's waarmee ik de bestanden 1 voor 1 kan openen, en die de data kopieert naar vaste tabbladen.
Alle bestanden hebben dezelfde indeling qua bestandsnaam.

Wat ik zoek is een code die, na of tijdens het openen, verschillende stukjes bestandsnaam naar bepaalde cellen kopieert.
Dus ik open een bestand 0000130814_KLN21_Step60sec.xlsx, de data gaat naar een bepaald tabblad (werkt al), en op een ander blad komt "130814" en "KLN21" in 2 vaste cellen te staan.

Mijn Code voor het openen en kopieren:
Sub GetBatch1data()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False

FileToOpen = Application.GetOpenFilename(Title:="Zoek het juiste bestand", FileFilter:="Excel Files (*.xls*),*xls*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)

Application.DisplayAlerts = False
OpenBook.Sheets(1).Range("A1:AV1800").Copy
ThisWorkbook.Worksheets("Batch 1").Range("A1").PasteSpecial xlPasteValues
OpenBook.Close False

Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True

End Sub
Hiermee kopieer ik alle inhoud van de eerste file, naar het tabblad "Batch 1".
In de bijlage een voorbeeld van hoe het eruit zou moeten zien.

Wat voor codes heb ik nodig voor het importeren van de bestandsnaam en opknippen?

Eventueel mag ook de gehele filenaam geïmporteerd worden naar het betreffende Tabblad. In cel B2 daar kan de bestandsnaam komen te staan.
Via formules zou ik dan ook de naam kunnen opsplitsen.

voorbeeld.png
 

Bijlagen

  • voorbeeld.png
    voorbeeld.png
    77,3 KB · Weergaven: 40
Laatst bewerkt:
Code:
sv = split(FileToOpen, "\")
sv = split(sv(ubound(sv)), "_")
sheets("jouwbladnaamhier").cells(1).resize(,2) = array(sv(0), sv(1))
 
Bedankt voor de reactie. Ik zal het proberen.

Ik heb het inmiddels ook opgelost door de volgende code toe te voegen:

Dim f As String, Path As String, _
FileName As String, FileType As String

f = FileToOpen

ary = Split(f, "")
bry = Split(ary(UBound(ary)), ".")
ary(UBound(ary)) = ""
Path = Join(ary, "")
FileName = bry(0)
FileType = bry(1)

Range("B2") = FileName

De naam zonder extentie komt dan in cel B2 van het betreffende tabblad te staan. Via Excel-formule DEEL kan ik dan deze naam splitsen.
 
't Is maar wat je makkelijk lijkt.
 
Als Sheets(1) een aaneengesloten bereik heeft vanaf A1 dan kan het ook zo.

Code:
Sub VenA()
  c00 = Application.GetOpenFilename(Title:="Zoek het juiste bestand", FileFilter:="Excel Files (*.xls*),*xls*")
  If c00 <> "" Then
    y = Split(Split(c00, "\")(UBound(Split(c00, "\"))), "_")
    With GetObject(c00)
      ar = Sheets(1).Cells(1).CurrentRegion
      .Close 0
    End With
    Sheets("Batch 1").Range("A1").Resize(UBound(ar), UBound(ar, 2)) = ar
    Sheets("Pivot_Source").Cells(Rows.Count, 8).End(xlUp).Offset(1).Resize(, 2) = Array(y(0), y(1))
  End If
End Sub
 
Als Sheets(1) een aaneengesloten bereik heeft vanaf A1 dan kan het ook zo.

Code:
Sub VenA()
  c00 = Application.GetOpenFilename(Title:="Zoek het juiste bestand", FileFilter:="Excel Files (*.xls*),*xls*")
  If c00 <> "" Then
    y = Split(Split(c00, "\")(UBound(Split(c00, "\"))), "_")
    With GetObject(c00)
      ar = Sheets(1).Cells(1).CurrentRegion
      .Close 0
    End With
    Sheets("Batch 1").Range("A1").Resize(UBound(ar), UBound(ar, 2)) = ar
    Sheets("Pivot_Source").Cells(Rows.Count, 8).End(xlUp).Offset(1).Resize(, 2) = Array(y(0), y(1))
  End If
End Sub

Deze code gaf een foutmelding (Fout 13). Types kwamen niet overeen.

Maar, alles werkt nu met de voorgaande oplossingen.
Bedankt voor de hulp.

2020_08_05_16_28_07_Window.png
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan