ws.select versus ActiveSheet.. zbytečná věc, rovnou pracujte s ws, přeci.. a kdybyste tohle věděla, tak už pak docvakne možnost testování na ws.name a vyřazení ze zpracování, je to tak?
A koukněte se i na syntaxi With..End With.citovat
Zaslal/a VBA98 7.7.2018 9:54
Zdravím,
pracuji na možnosti reportovat data z celého sešitu na jediném listu "reporting" kde pomocí tlačítka aktualizuji vše co potřebuji ve zbylých sešitech najít a vizualizovat (celý kód níže).
Problém nastává ve chvíli, když nechci aby akce "For each ws in ActiveWorkbook.Worksheets" zahrnula i 2 listy "Reporting", "Vstupy". Zkoušel jsem tyto listy obejít podmínkami If, ale bez úspěchu.
Dokázali byste prosím poradit jak udělit tuto vyjímku? Když název listu "Reporting" nebo "Vstupy" - přeskočit tyto listy?
Sub Reporting()
Dim ws As Worksheet, myCounter
Dim erowDat, erowInv, erowRez, erowDdhm, myDat, myInv, myRez, myDdhm As Long
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
Sheets("Reporting").Range("B2:E100").Select
Selection.ClearContents
For Each ws In Sheets
myCounter = 1
ws.Select
myInv = ws.Range("I1").Value
myRez = ws.Range("I2").Value
myDdhm = ws.Range("I3").Value
myDat = ws.Range("I4").Value
Worksheets("Reporting").Select
'ws.Range("I4").Select
erowInv = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erowInv, 2) = myInv
erowRez = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erowRez, 3) = myRez
erowDdhm = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erowDdhm, 4) = myDdhm
erowDat = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erowDat, 5) = myDat
Next ws
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.