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

Forumthread: Tabelle auslesen und Werte in neue Tab schreiben

Tabelle auslesen und Werte in neue Tab schreiben
Thorsten
Moin Forum,
ich bin blutjunger VBA-Anfänger. Ich will aus einer bestehenden Tabelle bestimmte Werte auszulesen und diese dann in eine neue Tabelle schreiben.
Die Routine läuft anstandslos durch, keine Fehlermeldung, aber es passiert eigentlich nichts.
kann von Euch einer drüberschauen und mir sagen, ob ich meine Zeilen in die Tonne hauen kann oder ob Hoffnung besteht?
Thorsten

Private Sub CommandButton1_Click()
' der button befindet sich in Tabellenblatt 'tabelle2'
Dim Pr As Integer
Dim Bp As Integer
Dim i As Integer
Dim inh(1000)
Dim z%
Dim a%
'Teil 1
'ich möchte über einen Button im Tabellenblatt 'tabelle2'
'werte aus B1 und D1 auslesen
Cells(1, 2) = Pr
Cells(1, 4) = Bp
'Teil 2
'aus dem tabellenblatt 'daten' möchte ich jeweils den wert aus spalte c erfassen,
'bei dem in der geleichen zeile in spalte A und spalte B die Werte aus B1 und D1 ('tabelle2')
'stehen
Worksheets("daten").Activate
z = 2
a = 1
Do While Cells(z, 2) > ""
If Cells(z, 2) = Pr Then
If Cells(z, 3) = Bp Then
inh(a) = Cells(z, 4)
a = a + 1
End If
End If
z = z + 1
Loop
a = a - 1
'Teil 3
'die werte aus dem tabellenblatt 'daten', bei denen die bedingung erfüllt war,
'möchte ich in ein neues tabellenblatt 'tabelle' schreiben
Worksheets("tabelle").Activate
For i = 1 To a
Cells(i, 1) = inh(i)
Next i
End Sub

Einziges Ergebnis: Im ersten Tabellenblatt sind (Tabelle2) sind B1 und D1 jetzt =0.
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Tabelle auslesen und Werte in neue Tab schreiben
PeterW
Hallo Thorsten,
íst nicht getestet aber sollte funktionieren:

Private Sub CommandButton1_Click()
' der button befindet sich in Tabellenblatt 'tabelle2'
Dim Pr As Integer
Dim Bp As Integer
Dim z%
Dim a%
'Teil 1
'ich möchte über einen Button im Tabellenblatt 'tabelle2'
'werte aus B1 und D1 auslesen
'dem Wert links vom Gleichheitszeichen wird der Wert
'rechts vom Gleichheitszeichen zugewiesen
Pr = Cells(1, 2)
Bp = Cells(1, 4)
'Teil 2
'aus dem tabellenblatt 'daten' möchte ich jeweils den wert aus spalte c erfassen,
'bei dem in der geleichen zeile in spalte A und spalte B die Werte aus B1 und D1 ('tabelle2')
'stehen
'ohne Activate die gefundenen Werte direkt in Blatt "tabelle" schreiben
With Worksheets("daten")
z = 2
a = 1
Do While .Cells(z, 2) &lt&gt ""
If .Cells(z, 2) = Pr Then
If .Cells(z, 3) = Bp Then
Worksheets("tabelle").Cells(a, 1) = .Cells(z, 4)
a = a + 1
End If
End If
z = z + 1
Loop
End With
'Teil 3
'kann bei direkter Übertragung entfallen
End Sub

Gruß
Peter
Anzeige
AW: Danke sehr.
23.03.2004 17:28:32
Thorsten
ja, klasse. Herzlichen Dank für Deinen Tipp. jetzt funktioniert es auch bei mir.
Gruß
Thorsten
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte aus einer Excel-Tabelle auslesen und in eine neue Tabelle schreiben


Schritt-für-Schritt-Anleitung

Um Daten aus einer Excel-Tabelle auszulesen und diese in eine neue Tabelle zu übertragen, kannst Du VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.
  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.
  3. Füge den folgenden Code ein:
Private Sub CommandButton1_Click()
    Dim Pr As Integer
    Dim Bp As Integer
    Dim z%
    Dim a%

    ' Werte aus den Zellen B1 und D1 auslesen
    Pr = Cells(1, 2)
    Bp = Cells(1, 4)

    ' Daten aus der Tabelle "daten" auslesen
    With Worksheets("daten")
        z = 2
        a = 1
        Do While .Cells(z, 2) <> ""
            If .Cells(z, 2) = Pr And .Cells(z, 3) = Bp Then
                Worksheets("tabelle").Cells(a, 1) = .Cells(z, 4)
                a = a + 1
            End If
            z = z + 1
        Loop
    End With
End Sub
  1. Füge einen Button hinzu: Gehe zu Entwicklertools > Einfügen > Button (Formularsteuerung) und ziehe ihn in das Arbeitsblatt.
  2. Verknüpfe den Button mit dem Makro: Wähle das Makro CommandButton1_Click aus.

Jetzt kannst Du auf den Button klicken, um die Werte aus der Tabelle auszulesen und in eine neue Tabelle zu schreiben.


Häufige Fehler und Lösungen

  • Fehler: Keine Daten werden eingetragen
    Lösung: Stelle sicher, dass die Werte in B1 und D1 korrekt sind und dass die Daten in der Tabelle "daten" vorhanden sind.

  • Fehler: Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs
    Lösung: Überprüfe die Namen der Arbeitsblätter. Sie müssen genau so geschrieben sein, wie sie in Excel angezeigt werden.


Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch Excel-Funktionen wie SVERWEIS oder INDEX und VERGLEICH nutzen, um Daten aus einer Tabelle auszulesen und in eine neue Zelle zu schreiben. Diese Methoden sind besonders nützlich, wenn Du keine Programmierkenntnisse hast.


Praktische Beispiele

Hier ist ein Beispiel, wie Du bestimmte Werte aus einer Tabelle auslesen und in eine neue Tabelle übertragen kannst:

  • Angenommen: Du hast eine Tabelle mit Verkaufsdaten und möchtest alle Verkäufe eines bestimmten Produkts in eine neue Tabelle übertragen.

In diesem Fall würdest Du den oben beschriebenen VBA-Code anpassen, um die spezifischen Bedingungen für das Produkt zu überprüfen.


Tipps für Profis

  • Verwende Option Explicit: Füge diese Zeile am Anfang Deines Moduls ein, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.

  • Optimiere die Leistung: Verwende Application.ScreenUpdating = False zu Beginn des Codes und setze es am Ende wieder auf True, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren.


FAQ: Häufige Fragen

1. Wie kann ich Daten aus einer Excel-Tabelle auslesen?
Du kannst VBA verwenden, um gezielt bestimmte Werte aus einer Tabelle auszulesen, indem Du den Code anpasst, wie im obigen Beispiel gezeigt.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und neuer.

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