Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
Sub jec()
Dim xp, xs, xDriver, sqlString
Dim a, sh, rs As Object
xp = "C:\Users\xxxx\Downloads\test\"
xs = Dir(xp & "Programma*.xlsx")
Set sh = ThisWorkbook.Sheets(1)
Set rs = CreateObject("ADODB.recordset")
sh.Cells(1).CurrentRegion.Resize(, 14).ClearContents
sh.Cells(1).Resize(, 14) = Array("Programma", "Batch", "Date", "Time", "Step", "Baseprogram ID", "Baseprogram", "", "chamberTemp", "coreTemp", "", "chamberTemp", "coreTemp", "FValue")
Do While xs <> ""
xDriver = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xp & xs & ";Extended Properties=""Excel 12.0;HDR=No;"""
sqlString = "SELECT * FROM `Recipe$A3:L`"
rs.Open sqlString, xDriver
a = rs.getrows
With sh.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Resize(UBound(a, 2) - 8, 2) = Array(a(0, 0), a(1, 3))
rs.Close
rs.Open Replace(sqlString, "Recipe$A3:L", "Recipe$A12:L"), xDriver
.Offset(, 2).CopyFromRecordset rs.DataSource
End With
xs = Dir
rs.Close
Loop
End Sub
let
Source = Folder.Files("C:\Users\Georges\Documents\Documenten\GEORGES\Forum Helpmij - Worksheet\Samenvoegen naar 1 Map"),
fltr_files = Table.SelectRows(Source, each Text.Contains([Name], "Programma")),
fltr_hidden_files = Table.SelectRows(fltr_files, each [Attributes]?[Hidden]? <> true),
get_content = Table.Combine(List.Transform(fltr_hidden_files[Content], each Excel.Workbook(_))),
expand = Table.ExpandTableColumn(get_content, "Data", Table.ColumnNames(get_content[Data]{0})),
delCols = Table.RemoveColumns(expand,{"Column6", "Column9", "Item", "Kind", "Hidden"}),
Headers = Table.RenameColumns(delCols,{{"Column1", "Date"}, {"Column2", "Time"}, {"Column3", "Step"}, {"Column4", "BadeprogramID"}, {"Column5", "Baseprogram"}, {"Column7", "ChamberTemp"}, {"Column8", "coreTemp"}, {"Column10", "chamberTempp"}, {"Column11", "coreTempp"}, {"Column12", "FValue"}}),
GetBatch = Table.AddColumn(Headers, "Batch", each if [Date] = "Batch:" then [Time] else null),
GetProg = Table.AddColumn(GetBatch, "Programma", each try if Text.Contains([Date], "Programma") or Text.Contains([Date], "PROCES") then [Date] else null otherwise null),
fill = Table.FillDown(GetProg,{"Batch", "Programma"}),
keep_dates = Table.SelectRows(fill, each Value.Type([Date]) = type datetime),
reorder = Table.ReorderColumns(keep_dates,{"Programma", "Name", "Batch", "Date", "Time", "Step", "BadeprogramID", "Baseprogram", "ChamberTemp", "coreTemp", "chamberTempp", "coreTempp", "FValue"}),
result = Table.TransformColumnTypes(reorder,{{"Date", type date}, {"Time", type time}})
in
result
Sub M_snb()
c00 = ThisWorkbook.Path & "\" 'je subdirectory van je bestanden
c01 = Dir(c00 & "Programma *.xlsx") 'zo noemen je bestandjes en ook per direct het eerste bestand die zo noemt
Set sh = ThisWorkbook.Sheets("Blad1") 'blad in deze file waar je naar toe kopieert
Sub M_snb()
c00 = "C:\snb\Snb\"
c01 = Dir(c00 & "Programma*.xlsx")
Do While c01 <> ""
With GetObject(c00 & c01)
.Sheets(1).UsedRange.Offset(11).Copy Blad1.Cells(Rows.Count, 2).End(xlUp).Offset(1)
Blad1.Columns(2).SpecialCells(2).Offset(, -1).SpecialCells(4) = c01
.Close 0
End With
c01 = Dir
Loop
End Sub
Sub M_snb()
c00 = "C:\snb\snb\" 'je subdirectory van je bestanden
c01 = Dir(c00 & "Programma*.xlsx") 'zo noemen je bestandjes en ook per direct het eerste bestand die zo noemt
Set sh = ThisWorkbook.Sheets("Blad1") 'blad in deze file waar je naar toe kopieert
Set dict = CreateObject("scripting.dictionary")
dict.comparemode = vbTextCompare
Set c = sh.Cells(Rows.Count, 1).End(xlUp) 'laatst gebruikte cel
If c.Row > 1 Then
aa = sh.Range("A1").Resize(c.Row, 2).Value 'inlezen 1e 2 kolommen
For i = 2 To UBound(aa)
dict(aa(i, 1) & "|" & aa(i, 2)) = vbEmpty 'unieke combinaties opslaan
Next
End If
Application.ScreenUpdating = False
Do While c01 <> "" 'loopje door alle gelijkaardige bestanden
With GetObject(c00 & c01).Sheets(1) 'open bestandje op de achtergrond en gebruik 1e blad
Application.StatusBar = c00 & c01: DoEvents
arr = Array(.Range("B6").Value, .Range("A3").Value) 'ophalen van deze 2 vaste gegevens
s = Join(arr, "|") 'die combinatie
If Not dict.exists(s) Then 'bestaat die nog niet ?
dict(s) = vbEmpty 'dan die ook toevoegen aan dictionary
Set c = .Range("A12").CurrentRegion.Resize(, 12) 'je procesgegevens vanaf A12, 12 kolommen breed
With sh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(c.Rows.Count) 'doelcel
.Resize(, 2).Value = arr 'je 2 vaste gegevens
.Offset(, 2).Resize(, c.Columns.Count).Value2 = c.Value2 'de procesgegevens
End With
End If
.Parent.Close 0 'bestand sluiten zonder opslaan
End With
c01 = Dir 'volgende gelijkaardige bestand
Loop
With sh
.Range("C:C").NumberFormat = "dd-mm-yy" 'datum
.Range("D").NumberFormat = "hh:mm:ss" 'tijd (zijn eigenlijk 2 keer dezelfde waarden
.Range("L:N").NumberFormat = "0.0" 'temperaturen tot op een tiende graad
.Range("A1").Resize(, 12).EntireColumn.AutoFit
End With
Application.StatusBar = False
Application.CutCopyMode = False
Application.Goto ActiveCell
Application.ScreenUpdating = True
End Sub
Sub M_snb()
Blad1.Cells(1).resize(,12)=array("Date","Time","Step","Baseprogram_ID","Baseprogram","","chamberTemp","coreTemp","","chamberTemp","coreTemp","FValue")
c00 = "C:\snb\Snb\"
c01 = Dir(c00 & "Programma*.xlsx")
Do While c01 <> ""
With GetObject(c00 & c01)
.Sheets(1).UsedRange.Offset(11).Copy Blad1.Cells(Rows.Count, 2).End(xlUp).Offset(1)
Blad1.Columns(2).SpecialCells(2).Offset(, -1).SpecialCells(4) = c01
.Close 0
End With
c01 = Dir
Loop
Blad1.columns(9).delete
Blad1.columns(6).delete
End Sub
Sub M_snb_Cow18()
c00 = "C:\snb\snb\" 'je subdirectory van je bestanden
c01 = Dir(c00 & "Programma*.xlsx") 'zo noemen je bestandjes en ook per direct het eerste bestand die zo noemt
Set sh = ThisWorkbook.Sheets("Blad1") 'blad in deze file waar je naar toe kopieert
Set dict = CreateObject("scripting.dictionary")
dict.comparemode = vbTextCompare
Set c = sh.Cells(Rows.Count, 1).End(xlUp) 'laatst gebruikte cel
If c.Row > 1 Then
aa = sh.Range("A1").Resize(c.Row, 2).Value 'inlezen 1e 2 kolommen
For i = 2 To UBound(aa)
dict(aa(i, 1) & "|" & aa(i, 2)) = vbEmpty 'unieke combinaties opslaan
Next
End If
Application.ScreenUpdating = False
Do While c01 <> "" 'loopje door alle gelijkaardige bestanden
With GetObject(c00 & c01).Sheets(1) 'open bestandje op de achtergrond en gebruik 1e blad
Application.StatusBar = c00 & c01: DoEvents
arr = Array(.Range("B6").Value, .Range("A3").Value) 'ophalen van deze 2 vaste gegevens
s = Join(arr, "|") 'die combinatie
If Not dict.exists(s) Then 'bestaat die nog niet ?
dict(s) = vbEmpty 'dan die ook toevoegen aan dictionary
Set c = .Range("A12").CurrentRegion.Resize(, 12) 'je procesgegevens vanaf A12, 12 kolommen breed
With sh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(c.Rows.Count) 'doelcel
.Resize(, 2).Value = arr 'je 2 vaste gegevens
.Offset(, 2).Resize(, c.Columns.Count).Value2 = c.Value2 'de procesgegevens
End With
End If
.Parent.Close 0 'bestand sluiten zonder opslaan
End With
c01 = Dir 'volgende gelijkaardige bestand
Loop
With sh
.Range("C:C").NumberFormat = "dd-mm-yy" 'datum
.Range("D").NumberFormat = "hh:mm:ss" 'tijd (zijn eigenlijk 2 keer dezelfde waarden
.Range("L:N").NumberFormat = "0.0" 'temperaturen tot op een tiende graad
.Range("A1").Resize(, 12).EntireColumn.AutoFit
End With
Application.StatusBar = False
Application.CutCopyMode = False
Application.Goto ActiveCell
Application.ScreenUpdating = True
End Sub
Batch: | Proces | Start: | End: |
26743241 | PROCES 3 | 26/10/2023 11:19 | 26/10/2023 13:59 |
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.