Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable definieren und in anderem Sub verwenden

Variable definieren und in anderem Sub verwenden
Aelsbeth
Liebes Forum,
seit einiger Zeit recherchiere ich schon mit wachsender Freude in diesem Forum. Meine Excel-Kenntnisse sind ausreichend gut bis ein bisschen besser, aber mit VBA hapert es schon ziemlich. Weil ich ein sehr umfangreiches Tool erstellen muss habe ich mir die Codes mehr oder minder "zusammengeklaut".
Jetzt bin ich aber an dem Punkt, an dem es droht unübersichtlich zu werden, und da trau ich mich mal, hier zu fragen.
Folgendes Problem: Ich muss ein Datenblatt aus mehreren anderen erstellen und formatiere es dafür erst mal entsprechend in VBA. Wenn ich das alles einzeln immer schön hintereinander wegschreibe funktioniert es auch schon sehr fein. Nur möchte ich nicht geschätzte 70 Seiten Code haben und dachte mir daher, dass ich das in kleine Subs aufteile und nur das, was sich ändert dann als Variable übergebe. Klappt aber nicht :-(
Was ist falsch?
'Blatt formatieren

Sub Vorbereiten()
Dim Modul As String
Dim ZellA As Integer
Dim ZellE As Integer
Range(Cells(9, 2), Cells(1000, 120)).Font.name = "Arial"
Range(Cells(9, 2), Cells(1000, 120)).Font.Size = 8
Modul = "Beispiel"
Ueberschr1
End Sub

'Überschrift Module

Sub Ueberschr1()
Dim Modul As String
Range(Cells(10, 2), Cells(10, 14)).Interior.ColorIndex = 55
Cells(10, 2).Font.Bold = True
Cells(10, 2).Font.ColorIndex = 2
Cells(10, 2).Value = Modul
Rows("11:11").RowHeight = 4.5
End Sub

Farbe und Größen werden alle fein übernommen, nur eben der Text "Beispiel" nicht.
Bin um jede Hilfe dankbar :-)
Gruß Aelsbeth
Windows XP, Office 2003
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variable definieren und in anderem Sub verwenden
06.06.2011 21:33:34
Josef

Hallo Aelsbeth,
Sub Vorbereiten()
  Dim ZellA As Integer
  Dim ZellE As Integer
  Range(Cells(9, 2), Cells(1000, 120)).Font.Name = "Arial"
  Range(Cells(9, 2), Cells(1000, 120)).Font.Size = 8
  Ueberschr1 "Beispiel"
  
End Sub

Sub Ueberschr1(ByVal Modul As String)
  Range(Cells(10, 2), Cells(10, 14)).Interior.ColorIndex = 55
  Cells(10, 2).Font.Bold = True
  Cells(10, 2).Font.ColorIndex = 2
  Cells(10, 2).Value = Modul
  Rows("11:11").RowHeight = 4.5
End Sub



« Gruß Sepp »

Anzeige
AW: Variable definieren und in anderem Sub verwenden
06.06.2011 22:07:53
Aelsbeth
Großartig :-))) Danke, Sepp.
Schönen Abend noch.
Gruß Aelsbeth
;
Anzeige
Anzeige

Infobox / Tutorial

Variablen in Excel VBA effizient definieren und nutzen


Schritt-für-Schritt-Anleitung

Um eine Excel VBA Variable zu definieren und in einem anderen Sub zu verwenden, folge diesen Schritten:

  1. Variable definieren: Lege die Variable in dem Sub fest, wo sie benötigt wird. Beispiel:

    Dim Modul As String
    Modul = "Beispiel"
  2. Sub-Prozedur erstellen: Erstelle eine zweite Sub-Prozedur, in der du die Variable verwenden möchtest. Stelle sicher, dass die Variable als Parameter übergeben wird:

    Sub Ueberschr1(ByVal Modul As String)
       Cells(10, 2).Value = Modul
    End Sub
  3. Aufruf der Sub-Prozedur: Rufe die Sub-Prozedur in deinem ersten Sub auf und übergebe die definierte Variable:

    Ueberschr1(Modul)

Häufige Fehler und Lösungen

Ein häufiger Fehler beim Definieren von Variablen in Excel VBA ist, dass die Variable nicht an die Sub-Prozedur übergeben wird. Stelle sicher, dass du die Variable beim Aufruf der Sub-Prozedur übergibst.

Beispiel für einen Fehler:

Sub Vorbereiten()
    Dim Modul As String
    Modul = "Beispiel"
    Ueberschr1 ' Falsch: Modul wird nicht übergeben
End Sub

Korrektur:

Ueberschr1(Modul) ' Richtig: Modul wird übergeben

Alternative Methoden

Es gibt verschiedene Möglichkeiten, um in Excel VBA Variablen zu definieren. Du kannst:

  • Globale Variablen verwenden, die in jedem Modul verfügbar sind, indem du sie außerhalb einer Sub-Prozedur deklarierst:

    Dim Modul As String ' Globale Variable
  • Öffentliche Variablen in einem Modul definieren, die dann in anderen Modulen verwendet werden können:

    Public Modul As String

Praktische Beispiele

Hier ist ein einfaches Beispiel für die Verwendung von Variablen in Excel VBA:

Sub Vorbereiten()
    Dim Modul As String
    Modul = "Beispiel"
    Ueberschr1 Modul
End Sub

Sub Ueberschr1(ByVal Modul As String)
    Cells(10, 2).Value = Modul
End Sub

In diesem Beispiel wird die Excel VBA Variable Modul erfolgreich an die Sub-Prozedur Ueberschr1 übergeben, die den Wert in die Zelle schreibt.


Tipps für Profis

  • Verwende konstante Variablen, wenn du Werte hast, die sich nicht ändern. Das verbessert die Übersichtlichkeit:

    Const Schriftgröße As Integer = 8
  • Halte dein Code organisiert, indem du Variablen in logische Gruppen innerhalb einer Sub-Prozedur definierst.

  • Dokumentiere deine Variablen mit Kommentaren, um den Code für andere oder für dich selbst in der Zukunft verständlicher zu machen.


FAQ: Häufige Fragen

1. Wie definiere ich eine globale Variable in Excel VBA? Um eine globale Variable zu definieren, schreibe sie außerhalb aller Sub-Prozeduren in ein Modul, z.B.:

Dim GlobalVariable As String

2. Was mache ich, wenn ich einen Typfehler bekomme? Überprüfe die Datentypen deiner Variablen und stelle sicher, dass sie korrekt zugewiesen werden. Zum Beispiel, wenn du einen String in eine Integer-Variable zuweisen möchtest, wird das einen Fehler verursachen.

3. Kann ich Variablen in einer Schleife definieren? Ja, du kannst Variablen innerhalb einer Schleife definieren, aber überlege, ob es sinnvoll ist, sie außerhalb zu definieren, um die Effizienz zu steigern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige