Ja, het klinkt ingewikkeld, maar dat valt eigenlijk best wel mee, het idee tenminste...de uitvoering kom ik helaas niet uit.
Ik laat een macro lopen wanneer mijn Excel bestand geopend wordt. Deze controleert wat de opslaglocatie is, indien dit een bepaalde map is, dan betreft het een sjabloon en wil ik op voorhand alle info die iemand misschien in het bestand heeft laten staan verwijderen. Dit doe ik dmv het aanroepen van de macro die deze info uit de juiste cellen verwijderd. Werkt perfect.
De macro "Alle_Meetstaten_Legen" wil ik ook op een andere manier functioneel hebben, zodat de gebruiker zelf ook de data, indien verkeerd geimporteerd of update van de data, kan verwijderen. Dit werkt ook meer dan prima.
Nu zit ik met het laatste stukje code:
Deze wil ik WEL weergeven indien de gebruiker de macro zelf start, maar NIET weergeven indien de macro aangeroepen wordt vanuit de "Workbook_Open()"...
Ben al bezig geweest met variabelen en globals, maar kan het nog niet voor elkaar krijgen. Iemand hier een oplossing voor?
Ik laat een macro lopen wanneer mijn Excel bestand geopend wordt. Deze controleert wat de opslaglocatie is, indien dit een bepaalde map is, dan betreft het een sjabloon en wil ik op voorhand alle info die iemand misschien in het bestand heeft laten staan verwijderen. Dit doe ik dmv het aanroepen van de macro die deze info uit de juiste cellen verwijderd. Werkt perfect.
Code:
Private Sub Workbook_Open()
' meetstaten legen indien het bestand op de server staat
If Application.ActiveWorkbook.Path = "...padjenaarhetbestand..." Then
Call Alle_Meetstaten_Legen
End If
End Sub
De macro "Alle_Meetstaten_Legen" wil ik ook op een andere manier functioneel hebben, zodat de gebruiker zelf ook de data, indien verkeerd geimporteerd of update van de data, kan verwijderen. Dit werkt ook meer dan prima.
Code:
Sub Alle_Meetstaten_Legen()
Dim WS As Worksheet
Dim regel As Long
Dim teller As Integer
teller = 0
For Each WS In ActiveWorkbook.Worksheets
' Filtergebied opzoeken
Dim obj As ListObject
Dim Tabel As String
For Each obj In WS.ListObjects
Tabel = obj.Name
If WS.ListObjects(Tabel).AutoFilter.FilterMode = True Then
' Actieve filter uitschakelen
WS.ListObjects(Tabel).AutoFilter.ShowAllData
End If
' Inhoud in filtergebied wissen
WS.ListObjects(Tabel).DataBodyRange.ClearContents
Exit For
Next
teller = teller + 1
Next WS
Sheets("meetstaat_instructie").Range("F2:F7").ClearContents
' Melding hoeveel geleegd is
MsgBox "Totaal " & teller & " meetstaten en algemene projectgegevens leeg gemaakt", vbInformation + vbOKOnly, "Meetstaten geleegd"
End Sub
Nu zit ik met het laatste stukje code:
Code:
MsgBox "Totaal " & teller & " meetstaten en algemene projectgegevens leeg gemaakt", vbInformation + vbOKOnly, "Meetstaten geleegd"
Ben al bezig geweest met variabelen en globals, maar kan het nog niet voor elkaar krijgen. Iemand hier een oplossing voor?