Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[office 2007] Universeel tabbladhernoemen mbv Macro

Pagina: 1
Acties:

  • Hopjesvla79
  • Registratie: Februari 2007
  • Laatst online: 18:38
Volgend probleem:
heb een progje waar als output een excelfile komt waarbij hij het eerste tabblad een naam heeft gegeven. Helaas heb ik ik niets aan die naam en moet het ivm met een andere grote macro die er overheen gaat hernoemd worden naar 'Blad4'.
Helaas is de naam die het progje aan dit tabblad geeft variabel (een timestamp), dus elke file die ik genereer heeft een andere naam in het tabblad staan. Hoe kan ik in een macro ervoor zorgen dat hij dit (variabele) tablad hernoemd naar 'Blad 4'?

Hi Ha Hopjesvla


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Wat is je recept om te bepalen dat een werkblad een andere naam moet krijgen? Zodra hij niet 'Blad 4' heet? Of als hij met een nummer begint?
M.a.w. bedenk hoe je het kan herkennen, stop het eventueel in een functie die een Boolean terug geeft, en gebruik deze functie in een IF statement.

Bijvoorbeeld
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub MacroX()
   Dim sWerkbladNaam As String
   sWerkbladNaam = ... 'haal hier de naam van het werkblad op
   If (MoetTabladHernoemen(sWerkbladNaam) ) Then
      'hier code voor het hernoemen van het werkblad
   End If
End Sub

Function MoetTabbladHernoemen( naam As String ) As Boolean
   If ( NOT naam = "Blad 4" ) Then 'hier kunnen ook andere checks komen te staan
       MoetTabbladHernoemen = True
   Else
      MoetTabbladHernoemen = False
   End If
End Function


Dit alles ter illustratie. De functie kan natuurlijk ook gewoon volledig in de macro ingebakken.

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 11:46
Of, als het bijvoorbeeld het eerste werkblad is

Visual Basic:
1
2
3
4
5
6
7
Sub Macro()
   Dim bestand As Workbook
   Set bestand = Workbooks.Open(Pad van je bestand)
   'als je het echt netjes wil doen, bouw je hier een routine om te checken 
   'of er niet al een werkblad "blad 4" bestaat.
   bestand.worksheets(1) = "Blad4"
End Sub

  • Hopjesvla79
  • Registratie: Februari 2007
  • Laatst online: 18:38
Bedankt voor de hulp, maar de uiteindelijke oplossing was erg simpel, kwam op het idee door het voorstel van Onkl (maar gezien mijn geringe kennis van deze materie heeft het eventjes geduurd.. ;-) )

Sub msquantcompatible()
'
' msquantcompatible Macro
'

'
Sheets(1).Name = "Blad4"
Sheets.Add After:=Sheets(Sheets.Count)
Sheets.Add After:=Sheets(Sheets.Count)
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Blad4").Select
Cells.Select
Application.Run "'D:\Macros\validatie macro.xlsm'!macro"
Application.WindowState = xlMinimized
Application.CutCopyMode = False
End Sub

Het zat hem in het feit dat wanneer ik de macro opgenomen had, de naam van het werkblad erin kwam te staan, nadat ik dit in een '1' heb veranderd werkt het gewoon. Wellicht een oplossing die eigenlijk te simpel voor woorden is, maar zoals gezegd: zo vaak gebruik ik dit niet...


*case closed*

Hi Ha Hopjesvla