bepalen aantal draaitabellen in file via Macro

Status
Niet open voor verdere reacties.

Gesus

Gebruiker
Lid geworden
6 okt 2006
Berichten
126
geachte lezer,

Ik heb een macro geschreven die alle Draaitabellen in een file automatisch doorrekent via ActiveWorkbook.RefreshAll. Maar ook als er geen Draaitabellen in het file zijn, laat deze macro aan het einde de mededeling zien dat alle draaitabellen zijn bijgewerkt.

Is het mogelijk om in onderstaande macro iets in te bouwen dat het aantal draaitabellen laat zien? Indien er geen draaitabel aanwezig is, zou dit in de Pop.up (voor End Sub) een andere tekst moeten geven.
Er zou dan een soort IF statement in moeten zitten welke de ene keer de mededeling "alle draaitabellen bijgewerkt" of 'er zijn geen draaitabellen".

dank alvast!!

Sub WorksheetPivots()
[K2] = "* Bezig met vernieuwen alle draaitabellen"
Application.Wait (Now + TimeValue("00:00:03")) ‘vertraging ingebouwd omdat anders inhoud in cel K2 te snel verdwijnt
ActiveWorkbook.RefreshAll
[L7] = Now ‘vul cel L7 met de huidige datum en tijd om te laten zien wanneer de DT voor het laatst is bijgewerkt (checks)
[K2] = "" ‘maak cel K2 leeg voor gebruik andere macro
Calculate
CreateObject("WScript.Shell").Popup "* Alle Draaitabellen bijgewerkt" & vbNewLine & vbNewLine & "(Mededeling verdwijnt automatisch)", 1, ""
End Sub

met vriendelijke groet,
Gesus
 
Om het aantal draaitabellen te bepalen.
Code:
Sub VenA()
For Each sh In Sheets
 j = j + sh.PivotTables.Count
Next sh
MsgBox j
End Sub
 
Hallo VenA,

als ik dit inbouw in mijn macro, en hem wat uitbreid met een if then else statement aan het einde zou ik zoiets krijgen, maar het werkt niet.
Zou je hier ook nog even naar kunnen kijken?

Thanks! :)

Sub WorksheetPivots()
[K2] = "* Bezig met vernieuwen alle draaitabellen" 'laat zien wat er momenteel gebeurt
Application.Wait (Now + TimeValue("00:00:03")) 'vertraging ingebouwd omdat anders inhoud in cel K2 te snel verdwijnt
ActiveWorkbook.RefreshAll
[L7] = Now 'vul cel L7 met de huidige datum om te laten zien wanneer de DT voor het laatst is bijgewerkt
[K2] = "" 'maak cel K2 leeg voor gebruik andere macro
Calculate
Sub VenA()
For Each sh In Sheets
Aant_DT = Aant_DT + sh.PivotTables.Count
Next sh
MsgBox Aant_DT
End Sub
If Aant_DT > 0 Then CreateObject("WScript.Shell").Popup "* Alle Draaitabellen bijgewerkt" & vbNewLine & vbNewLine & "(Mededeling verdwijnt automatisch)", 1, ""
Else: CreateObject("WScript.Shell").Popup "* Geen Draaitabellen gevonden" & vbNewLine & vbNewLine & "(Mededeling verdwijnt automatisch)", 1, ""
End Sub
 
Gebruik svp codetags.
Maak er zoiets van
Code:
Sub WorksheetPivots()
  For Each sh In Sheets
    Aant_DT = Aant_DT + sh.PivotTables.Count
  Next sh
  If Aant_DT > 0 Then
    [K2] = "* Bezig met vernieuwen alle draaitabellen" 'laat zien wat er momenteel gebeurt
    Application.Wait (Now + TimeValue("00:00:03")) 'vertraging ingebouwd omdat anders inhoud in cel K2 te snel verdwijnt
    ActiveWorkbook.RefreshAll
    [L7] = Now 'vul cel L7 met de huidige datum om te laten zien wanneer de DT voor het laatst is bijgewerkt
    [K2] = "" 'maak cel K2 leeg voor gebruik andere macro
    CreateObject("WScript.Shell").Popup "* Alle Draaitabellen bijgewerkt" & vbNewLine & vbNewLine & "(Mededeling verdwijnt automatisch)", 1, ""
   Else
    CreateObject("WScript.Shell").Popup "* Geen Draaitabellen gevonden" & vbNewLine & vbNewLine & "(Mededeling verdwijnt automatisch)", 1, ""
  End If
End Sub
 
Deze werkt fantastisch! Dank!
had ondertussen ook al wat via internet gevonden, maar dat werd een zootje en zeker niet zo gestructureerd als jouw macro.

nogmaals dank!

met vriendelijke groet,
Gesus
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan