Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Dim srcPath As String
Dim srcSearchValue As String
'Dateipfad ermitteln
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "CSV Files", "*.csv"
.Filters.Add "All Files", "*.*"
.FilterIndex = 1
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Keine Datei ausgewählt, Vorgang wird abgebrochen", vbExclamation + vbOKOnly
Exit Sub
End If
srcPath = .SelectedItems(1)
End With
'Suchwert abfragen
srcSearchValue = InputBox("Suchwert in Spalte B")
Private Sub CommandButton1_Click()
'Testwerte. Müssen noch angepasst werden
'Const C_SRC_PATH = "G:\IT\Karaguelle\Messwerte Kopieren\X590_DRL_DI_Mid_Outer_RH.txt" 'Quelldatei
Dim srcPath As String
Dim srcSearchValue As String
'Dateipfad ermitteln
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "CSV Files", "*.csv"
.Filters.Add "All Files", "*.*"
.FilterIndex = 1
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Keine Datei ausgewählt, Vorgang wird abgebrochen", vbExclamation + vbOKOnly
Exit Sub
End If
srcPath = .SelectedItems(1)
End With
'Suchwert abfragen
srcSearchValue = InputBox("Suchwert in Spalte B")
Dim srcWb As Workbook
Dim srcWs As Worksheet
Dim trgWb As Workbook
Dim trgWs As Worksheet
Dim r As Range
Dim trgLastRowNr As Long
Dim actAlerts As Boolean
'Ziel Workbook
Set trgWb = ActiveWorkbook
'Quell Workbook und Sheet
' Set srcWb = Workbooks.Add(C_SRC_PATH)
'Set srcWs = srcWb.Worksheets(1)
'Das CSV ist als Text in der ersten Spalte - Das ganze mit TextToColumns auf die Spalten aufteilen
actAlerts = Application.DisplayAlerts 'aktuelle DisplayAlerts merken
Application.DisplayAlerts = False 'DisplayAlerts ausschalten
srcWs.Range("A:A").TextToColumns Destination:=srcWs.Range("A1"), DataType:=xlDelimited, Semicolon:=True
Application.DisplayAlerts = actAlerts 'DisplayAlerts zurücksetzen
'Die Spalte B durchsuchen
For Each r In srcWs.Range(C_SRC_SEARCH_RANGE)
If r.Value = C_SRC_SEARCH_VALUE Then
'Falls das Ziel-Sheet noch nicht definiert wurde, das machen (wird nur beim ersten Treffer ausgeführt)
If trgWs Is Nothing Then
Set trgWs = createOrGetWorksheet(trgWb, C_TRG_WS_NAME)
trgLastRowNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Row
End If
'Nächste Freie Zeilen ermitteln
trgLastRowNr = trgLastRowNr + 1
'Wert aus Spalte I übernehmen
trgWs.Cells(trgLastRowNr, 1) = srcWs.Cells(r.Row, C_COLNR_I).Value
End If
Next r
srcWb.Close False
End Sub
'/**
' * Gibt ein Worksheet anhand des Namens zurück. Exisitert es noch nicht, wird es erstellt
' * @param Workbook
' * @param String
' * @return Worksheet
' */
Private Function createOrGetWorksheet(ByRef ioWb As Workbook, ByVal iWsName As String) As Worksheet
Dim ws As Worksheet
For Each ws In ioWb.Worksheets
If (UCase(ws.Name) = UCase(iWsName)) Then
Set createOrGetWorksheet = ws
Exit Function
End If
Next ws
Set createOrGetWorksheet = ioWb.Worksheets.Add
createOrGetWorksheet.Name = iWsName
End Function
End Function
Public Sub test()
'Testwerte. Müssen noch angepasst werden
Const C_SRC_SEARCH_RANGE = "B:B" 'Suchbereich
Const C_TRG_WS_NAME = "TEST" 'Name des Ziel-Sheets
Const C_COLNR_I = 9 'i ist Spalte 9
Dim srcWb As Workbook
Dim srcWs As Worksheet
Dim trgWb As Workbook
Dim trgWs As Worksheet
Dim r As Range
Dim trgLastRowNr As Long
Dim actAlerts As Boolean
Dim srcPath As String
Dim srcSearchValue As String
'Dateipfad ermitteln
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "CSV Files", "*.csv"
.Filters.Add "All Files", "*.*"
.FilterIndex = 1
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Keine Datei ausgewählt, Vorgang wird abgebrochen", vbExclamation + vbOKOnly
Exit Sub
End If
srcPath = .SelectedItems(1)
End With
'Suchwert abfragen
srcSearchValue = InputBox("Suchwert in Spalte B")
'Ziel Workbook
Set trgWb = ActiveWorkbook
'Quell Workbook und Sheet
Set srcWb = Workbooks.Add(srcPath)
Set srcWs = srcWb.Worksheets(1)
'Das CSV ist als Text in der ersten Spalte - Das ganze mit TextToColumns auf die Spalten aufteilen
actAlerts = Application.DisplayAlerts 'aktuelle DisplayAlerts merken
Application.DisplayAlerts = False 'DisplayAlerts ausschalten
srcWs.Range("A:A").TextToColumns Destination:=srcWs.Range("A1"), DataType:=xlDelimited, Semicolon:=True
Application.DisplayAlerts = actAlerts 'DisplayAlerts zurücksetzen
'Die Spalte B durchsuchen
For Each r In srcWs.Range(C_SRC_SEARCH_RANGE)
If r.Value = srcSearchValue Then
'Falls das Ziel-Sheet noch nicht definiert wurde, das machen (wird nur beim ersten Treffer ausgeführt)
If trgWs Is Nothing Then
Set trgWs = createOrGetWorksheet(trgWb, C_TRG_WS_NAME)
trgLastRowNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Row
End If
'Nächste Freie Zeilen ermitteln
trgLastRowNr = trgLastRowNr + 1
'Wert aus Spalte I übernehmen
trgWs.Cells(trgLastRowNr, 1) = srcWs.Cells(r.Row, C_COLNR_I).Value
End If
Next r
srcWb.Close False
End Sub
'/**
' * Gibt ein Worksheet anhand des Namens zurück. Exisitert es noch nicht, wird es erstellt
' * @param Workbook
' * @param String
' * @return Worksheet
' */
Private Function createOrGetWorksheet(ByRef ioWb As Workbook, ByVal iWsName As String) As Worksheet
Dim ws As Worksheet
For Each ws In ioWb.Worksheets
If (UCase(ws.Name) = UCase(iWsName)) Then
Set createOrGetWorksheet = ws
Exit Function
End If
Next ws
Set createOrGetWorksheet = ioWb.Worksheets.Add
createOrGetWorksheet.Name = iWsName
End Function
Dim trgColNr As Long
...
If r.Value = srcSearchValue Then
'Falls das Ziel-Sheet noch nicht definiert wurde, das machen (wird nur beim ersten Treffer ausgeführt)
If trgWs Is Nothing Then
Set trgWs = createOrGetWorksheet(trgWb, C_TRG_WS_NAME)
trgLastRowNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Row
trgColNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Column + 1
End If
'Nächste Freie Zeilen ermitteln
trgLastRowNr = trgLastRowNr + 1
'Wert aus Spalte I übernehmen
trgWs.Cells(trgLastRowNr, 1) = srcWs.Cells(r.Row, trgColNr).Value
End If
Public Sub Suche()
'Testwerte. Müssen noch angepasst werden
Const C_SRC_SEARCH_RANGE = "B:B" 'Suchbereich
'Name des Ziel-Sheets
Const C_COLNR_I = 9 'i ist Spalte 9
Dim srcWb As Workbook
Dim srcWs As Worksheet
Dim trgWb As Workbook
Dim trgWs As Worksheet
Dim r As Range
Dim trgLastRowNr As Long
Dim actAlerts As Boolean
Dim srcPath As String
Dim srcSearchValue As String
'Dim C_TRG_WS_Name
Dim trgColNr As Long
'Dateipfad ermitteln
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "CSV Files", "*.csv"
.Filters.Add "All Files", "*.*"
.FilterIndex = 1
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Keine Datei ausgewählt, Vorgang wird abgebrochen", vbExclamation + vbOKOnly
Exit Sub
End If
srcPath = .SelectedItems(1)
End With
'Suchwert abfragen
srcSearchValue = InputBox("Suchwert in Spalte B")
'C_TRG_WS_Name = InputBox("Name des Arbeitsblattes")
'Ziel Workbook
Set trgWb = ActiveWorkbook
'Quell Workbook und Sheet
Set srcWb = Workbooks.Add(srcPath)
Set srcWs = srcWb.Worksheets(1)
'Das CSV ist als Text in der ersten Spalte - Das ganze mit TextToColumns auf die Spalten aufteilen
actAlerts = Application.DisplayAlerts 'aktuelle DisplayAlerts merken
Application.DisplayAlerts = False 'DisplayAlerts ausschalten
srcWs.Range("A:A").TextToColumns Destination:=srcWs.Range("A1"), DataType:=xlDelimited, Semicolon:=True
Application.DisplayAlerts = actAlerts 'DisplayAlerts zurücksetzen
'Die Spalte B durchsuchen
For Each r In srcWs.Range(C_SRC_SEARCH_RANGE)
If r.Value = srcSearchValue Then
'Falls das Ziel-Sheet noch nicht definiert wurde, das machen (wird nur beim ersten Treffer ausgeführt)
If trgWs Is Nothing Then
Set trgWs = createOrGetWorksheet(trgWb, C_TRG_WS_Name)
trgLastRowNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Row
trgColNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Column + 1
End If
'Nächste Freie Zeilen ermitteln
trgLastRowNr = trgLastRowNr + 1
'Wert aus Spalte I übernehmen
trgWs.Cells(trgLastRowNr, 1) = srcWs.Cells(r.Row, trgColNr).Value
End If
'Die Spalte B durchsuchen
' For Each r In srcWs.Range(C_SRC_SEARCH_RANGE)
' If r.Value = srcSearchValue Then
'Falls das Ziel-Sheet noch nicht definiert wurde, das machen (wird nur beim ersten Treffer ausgeführt)
' If trgWs Is Nothing Then
' Set trgWs = createOrGetWorksheet(trgWb, C_TRG_WS_Name)
' trgLastRowNr = trgWs.Cells.SpecialCells(xlCellTypeLastCell).Row
' End If
'Nächste Freie Zeilen ermitteln
' trgLastRowNr = trgLastRowNr + 1
'Wert aus Spalte I übernehmen
' trgWs.Cells(trgLastRowNr, 1) = srcWs.Cells(r.Row, C_COLNR_I).Value
' End If
Next r
srcWb.Close False
End Sub
'/**
' * Gibt ein Worksheet anhand des Namens zurück. Exisitert es noch nicht, wird es erstellt
' * @param Workbook
' * @param String
' * @return Worksheet
' */
Private Function createOrGetWorksheet(ByRef ioWb As Workbook, ByVal iWsName As String) As Worksheet
Dim ws As Worksheet
For Each ws In ioWb.Worksheets
If (UCase(ws.Name) = UCase(iWsName)) Then
Set createOrGetWorksheet = ws
Exit Function
End If
Next ws
Set createOrGetWorksheet = ioWb.Worksheets.Add
createOrGetWorksheet.Name = iWsName
End Function