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

Forumthread: VBA Button geht nicht mehr

VBA Button geht nicht mehr
20.02.2013 16:24:24
Julia
Hi,
ich habe einen Button in meiner Datei der eine Gesamtübersicht über alle Tabellenblätter ausgibt. Bei Klick sollte folgender Code ausgeführt werden:
Option Explicit
Private Sub CommandButton1_Click()
Dim x As Double, i As Double
ActiveSheet.Move before:=Sheets(1) 'setzt Actives Blatt an erste Stelle
x = 2
For i = 3 To Sheets.Count
Cells(x, 1) = Sheets(i).Name
Cells(x, 3).Value = Sheets(i).Cells(9, 5)
Cells(x, 4).Value = Sheets(i).Cells(14, 5)
Cells(x, 6).Value = Sheets(i).Cells(10, 5)
Cells(x, 7).Value = Sheets(i).Cells(11, 5)
Cells(x, 8).Value = Sheets(i).Cells(12, 5)
Cells(x, 9).Value = Sheets(i).Cells(13, 5)
Cells(x, 11).Value = Sheets(i).Cells(6, 4)
Cells(x, 13).Value = Sheets(i).Cells(3, 6)
Cells(x, 15).Value = Sheets(i).Cells(19, 5)
Cells(x, 16).Value = Sheets(i).Cells(20, 5)
Cells(x, 17).Value = Sheets(i).Cells(21, 5)
Cells(x, 18).Value = Sheets(i).Cells(22, 5)
Cells(x, 19).Value = Sheets(i).Cells(23, 5)
Cells(x, 20).Value = Sheets(i).Cells(24, 5)
Cells(x, 21).Value = Sheets(i).Cells(25, 5)
Cells(x, 22).Value = Sheets(i).Cells(26, 5)
Cells(x, 23).Value = Sheets(i).Cells(27, 5)
Cells(x, 24).Value = Sheets(i).Cells(28, 5)
Cells(x, 25).Value = Sheets(i).Cells(29, 5)
Cells(x, 26).Value = Sheets(i).Cells(30, 5)
Cells(x, 27).Value = Sheets(i).Cells(31, 5)
Cells(x, 28).Value = Sheets(i).Cells(32, 5)
Cells(x, 29).Value = Sheets(i).Cells(33, 5)
Cells(x, 30).Value = Sheets(i).Cells(34, 5)
Cells(x, 31).Value = Sheets(i).Cells(35, 5)
Cells(x, 32).Value = Sheets(i).Cells(36, 5)
Cells(x, 33).Value = Sheets(i).Cells(37, 5)
Cells(x, 34).Value = Sheets(i).Cells(38, 5)
Cells(x, 35).Value = Sheets(i).Cells(39, 5)
Cells(x, 36).Value = Sheets(i).Cells(40, 5)
Cells(x, 37).Value = Sheets(i).Cells(41, 5)
Cells(x, 38).Value = Sheets(i).Cells(42, 5)
Cells(x, 39).Value = Sheets(i).Cells(43, 5)
Cells(x, 40).Value = Sheets(i).Cells(44, 5)
Cells(x, 41).Value = Sheets(i).Cells(45, 5)
Cells(x, 42).Value = Sheets(i).Cells(46, 5)
Cells(x, 43).Value = Sheets(i).Cells(47, 5)
Cells(x, 44).Value = Sheets(i).Cells(48, 5)
Cells(x, 45).Value = Sheets(i).Cells(49, 5)
Cells(x, 46).Value = Sheets(i).Cells(50, 5)
Cells(x, 47).Value = Sheets(i).Cells(51, 5)
Cells(x, 48).Value = Sheets(i).Cells(52, 5)
Cells(x, 49).Value = Sheets(i).Cells(53, 5)
Cells(x, 50).Value = Sheets(i).Cells(54, 5)
Cells(x, 51).Value = Sheets(i).Cells(19, 6)
Cells(x, 52).Value = Sheets(i).Cells(20, 6)
Cells(x, 53).Value = Sheets(i).Cells(21, 6)
Cells(x, 54).Value = Sheets(i).Cells(22, 6)
Cells(x, 55).Value = Sheets(i).Cells(23, 6)
Cells(x, 56).Value = Sheets(i).Cells(24, 6)
Cells(x, 57).Value = Sheets(i).Cells(25, 6)
Cells(x, 58).Value = Sheets(i).Cells(26, 6)
Cells(x, 59).Value = Sheets(i).Cells(27, 6)
Cells(x, 60).Value = Sheets(i).Cells(28, 6)
Cells(x, 61).Value = Sheets(i).Cells(29, 6)
Cells(x, 62).Value = Sheets(i).Cells(30, 6)
Cells(x, 63).Value = Sheets(i).Cells(31, 6)
Cells(x, 64).Value = Sheets(i).Cells(32, 6)
Cells(x, 65).Value = Sheets(i).Cells(33, 6)
Cells(x, 66).Value = Sheets(i).Cells(34, 6)
Cells(x, 67).Value = Sheets(i).Cells(35, 6)
Cells(x, 68).Value = Sheets(i).Cells(36, 6)
Cells(x, 69).Value = Sheets(i).Cells(37, 6)
Cells(x, 70).Value = Sheets(i).Cells(38, 6)
Cells(x, 71).Value = Sheets(i).Cells(39, 6)
Cells(x, 72).Value = Sheets(i).Cells(40, 6)
Cells(x, 73).Value = Sheets(i).Cells(41, 6)
Cells(x, 74).Value = Sheets(i).Cells(42, 6)
Cells(x, 75).Value = Sheets(i).Cells(43, 6)
Cells(x, 76).Value = Sheets(i).Cells(44, 6)
Cells(x, 77).Value = Sheets(i).Cells(45, 6)
Cells(x, 78).Value = Sheets(i).Cells(46, 6)
Cells(x, 79).Value = Sheets(i).Cells(47, 6)
Cells(x, 80).Value = Sheets(i).Cells(48, 6)
Cells(x, 81).Value = Sheets(i).Cells(49, 6)
Cells(x, 82).Value = Sheets(i).Cells(50, 6)
Cells(x, 83).Value = Sheets(i).Cells(51, 6)
Cells(x, 84).Value = Sheets(i).Cells(52, 6)
Cells(x, 85).Value = Sheets(i).Cells(53, 6)
Cells(x, 86).Value = Sheets(i).Cells(54, 6)
Cells(x, 87).Value = Sheets(i).Cells(4, 10)
x = x + 1
Next i
End Sub

Es hat auch mal funktioniert, aber irgendwie geht es nicht mehr und ich weiß nicht warum, kann jemand helfen?
Danke und LG Julia

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Button geht nicht mehr
20.02.2013 16:28:03
Maximilian
Also erst mal unten bei "Next i" das i weg machen.. nur "Next"
Ansonsten mal den Debugger fragen, in welcher Zeile ein Fehler auftritt, dann nochmal melden.

AW: VBA Button geht nicht mehr
20.02.2013 16:35:11
Sheldon
Hallo Maximilian, hallo Julia,
das funktioniert selbstverständlich auch mit "Next i", Fehler verursacht sowas nur bei einer For Each .. Next - Anweisung.
Warum das nicht funktioniert? Wir können nur raten, weil wir alle Deine Datei nicht kennen. Aber wenn ich raten soll, dann liegts daran, dass die Datei ein oder zwei Tabellenblätter besitzt, das Makro erwartet aber mindestens drei Tabellenblätter. (For i=3 to Sheets.Count)
Gruß
Sheldon

Anzeige
Auch das ist nicht ganz exakt, ...
20.02.2013 17:14:07
Luc:-?
…Sheldon; ;-]
nach dem Next als Abschluss einer For-Anweisung, egal welcher Art, darf grundsätzlich der Name der Laufvariablen folgen, obwohl er auch (meist) entfallen kann. Es ist so (für den Betrachter) eindeutiger, welche Schleife gemeint ist (falls mehrere ineinandergeschachtelt wdn). Nur ein falscher Laufvariablenname führt zum Fehler (allerdings schon bei der Auto-Überprüfung im VBE bei Kompilieren bzw Speichern).
Gruß Luc :-?

Anzeige
Am Rande
20.02.2013 16:36:21
JACKD
Hallo Julia
Ich versuch mir grad vorzustellen wie deine Arbeitsmappe aussieht..
Aber er gelingt mir nicht..
du willst eine übersicht über alle Arbeitsblätter referierst aber auf die verschiedensten Zellen in den verschiedenen Blättern?
Grüße

On error resume next
20.02.2013 16:37:22
JACKD
bringt häufig schon eine Lösung (behebt aber das Problem nicht)

AW: VBA Button geht nicht mehr
20.02.2013 16:52:20
Rudi
Hallo,
warum's nicht geht, kann ich nicht sagen. Aber kürzer geht's.
Private Sub CommandButton1_Click()
Dim x As Long, i As Integer
ActiveSheet.Move before:=Sheets(1) 'setzt Actives Blatt an erste Stelle
x = 2
For i = 3 To Sheets.Count
With Sheets(i)
Cells(x, 1) = .Name
Cells(x, 3).Value = .Cells(9, 5)
Cells(x, 4).Value = .Cells(14, 5)
Cells(x, 6).Value = .Cells(10, 5)
Cells(x, 7).Value = .Cells(11, 5)
Cells(x, 8).Value = .Cells(12, 5)
Cells(x, 9).Value = .Cells(13, 5)
Cells(x, 11).Value = .Cells(6, 4)
Cells(x, 13).Value = .Cells(3, 6)
Cells(x, 15).Resize(, 36).Value = _
WorksheetFunction.Transpose(.Cells(19, 5).Resize(36))
Cells(x, 51).Resize(, 36).Value = _
WorksheetFunction.Transpose(.Cells(19, 6).Resize(36))
Cells(x, 87).Value = .Cells(4, 10)
End With
x = x + 1
Next i
End Sub

Gruß
Rudi

Anzeige
AW: VBA Button geht nicht mehr
20.02.2013 17:29:41
Daniel
Hi
vielleicht einfach nur vergessen, beim Starten der Datei die Makros zu aktivieren?
in den neuen Excelversionen kommt nicht immer ne schöne Meldung, manchmal ist das einfach ein Button am oberen Rand.
oder aus versehen den Entwurfsmodus aktiviert?
Gruß Daniel

Hat d.Button evtl keine ...
20.02.2013 17:41:52
Luc:-?
…Beziehung mehr zur Prozedur, Julia?
Das hängt auch von Button-Art und -Standort ab, was wir aus deiner Anfrage nicht erkennen können.
Gruß Luc :-?

Anzeige
AW: Hat d.Button evtl keine ...
21.02.2013 08:06:01
Julia
Guten Morgen,
danke für die zahlreichen Antworten. Es war wirklich der Bezug der gefehlt hat, warum kann ich mir aber nicht erklären. Jetzt geht es wieder. Vielen lieben Dank.
Da mir meine Variante die Gesamtübersicht über alle Tabellenblätter zu erstellen noch nicht ganz so gut gefällt mache ich noch einen neuen Thread auf, vielleicht kann mir jemand helfen das zu verbessern.
Lg Julia

Anzeige
Siehste, 'Stecker' war's! ;-) Gruß owT
21.02.2013 12:25:42
Luc:-?
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Button funktioniert nicht mehr – Problemlösungen und Tipps


Schritt-für-Schritt-Anleitung

Um das Problem mit dem nicht funktionierenden Excel Button zu beheben, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Finde den Code des Buttons: Doppelklicke auf das Blatt, in dem sich der Button befindet, und suche den entsprechenden Code.

  3. Überprüfe den Code: Achte darauf, dass der Code korrekt ist. Hier ist ein Beispiel, das du verwenden kannst:

    Private Sub CommandButton1_Click()
       Dim x As Long, i As Integer
       ActiveSheet.Move before:=Sheets(1) 'setzt Actives Blatt an erste Stelle
       x = 2
       For i = 3 To Sheets.Count
           With Sheets(i)
               Cells(x, 1) = .Name
               ' Weitere Zellen können hier bearbeitet werden
           End With
           x = x + 1
       Next i
    End Sub
  4. Makros aktivieren: Stelle sicher, dass du die Makros beim Öffnen der Datei aktiviert hast. In den neueren Excel-Versionen kann manchmal ein Button am oberen Rand erscheinen, der die Aktivierung erfordert.

  5. Testen: Klicke auf den Button, um zu sehen, ob er jetzt funktioniert.


Häufige Fehler und Lösungen

  • Fehler im Code: Achte darauf, dass der Code fehlerfrei ist. Ein häufiger Fehler ist das Fehlen des richtigen Bezuges auf die Zellen. Überprüfe, dass alle Zellen, die du ansprechen möchtest, existieren.

  • Falsche Anzahl an Tabellenblättern: Das Makro erwartet möglicherweise eine bestimmte Anzahl von Tabellenblättern. Wenn deine Datei weniger als drei Blätter hat, wird der Code nicht funktionieren.

  • Entwurfsmodus aktiv: Stelle sicher, dass sich der Excel Button nicht im Entwurfsmodus befindet. Überprüfe dies in der Entwicklertools-Leiste.


Alternative Methoden

Wenn dein Excel Button nicht mehr funktioniert, gibt es auch alternative Methoden, um deine Aufgabe zu erledigen:

  • Verwendung von Hyperlinks: Statt eines Buttons kannst du auch Hyperlinks verwenden, um auf andere Blätter oder Zellen zu verweisen.

  • Formeln: Manchmal kann die gewünschte Übersicht auch über Formeln erreicht werden, ohne ein Makro zu verwenden.

  • Benutzerdefinierte Funktionen: Du kannst benutzerdefinierte Funktionen in VBA erstellen, die bei Bedarf ausgeführt werden können.


Praktische Beispiele

Hier ist ein einfaches Beispiel für einen funktionierenden VBA Button:

Private Sub CommandButton1_Click()
    Dim i As Integer
    For i = 1 To 10
        Cells(i, 1).Value = "Zeile " & i
    Next i
End Sub

In diesem Beispiel wird bei Klick auf den Button in den ersten 10 Zeilen der ersten Spalte der Text "Zeile x" eingefügt.


Tipps für Profis

  • Verwende On Error Resume Next: Dies kann helfen, kleine Fehler zu ignorieren, aber sei vorsichtig! Es behebt das Problem nicht und kann dazu führen, dass andere Fehler unbemerkt bleiben.

  • Debugging verwenden: Nutze die Debugging-Funktion im VBA-Editor, um herauszufinden, wo der Fehler auftritt. Setze Breakpoints und überprüfe die Variablenwerte.

  • Schreibe klaren und lesbaren Code: Verwende Kommentare, um den Code verständlicher zu machen. Das hilft sowohl dir als auch anderen Benutzern.


FAQ: Häufige Fragen

1. Warum funktioniert mein Excel Button nicht mehr?
Es kann viele Gründe geben, darunter Fehler im VBA-Code, die Notwendigkeit, Makros zu aktivieren, oder der Button wurde in den Entwurfsmodus versetzt.

2. Wie kann ich sicherstellen, dass mein Makro keine Fehler enthält?
Nutze den Debugger im VBA-Editor, um durch den Code zu gehen und zu überprüfen, wo Fehler auftreten. Achte darauf, alle Verweise auf Zellen und Blätter zu überprüfen.

3. Was kann ich tun, wenn ich mehrere Buttons habe?
Stelle sicher, dass jeder Button mit der richtigen Prozedur verknüpft ist. Du kannst auch das gleiche Makro für mehrere Buttons verwenden, indem du Parameter übergibst.

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