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

Forumthread: Wert in neue Spalte schreiben...

Wert in neue Spalte schreiben...
29.05.2008 17:22:34
Jessica
Hallo nochmal,
hänge an folgenden Problem:
Ich kann per Button-Ereignis Werte in eine neue Reihe auf Tabellenblatt "Tabelle2" schreiben, funktioniert auch alles ohne Probleme.
Ich löse das Button-Ereignis mehrfach aus, so erhalte ich unterschiedlichste Rechenergebnisse, die ich alle samt in die Tabelle "Tabelle2" (in neue Zeilen) übertrage.
Nun bin ich dabei die Werte parallel in ein weiteres Datenblatt zu erfassen, da bestimmte Werte in einem Diagramm darzustellen sind und dazu benötige dementsprechend die Anordnung der Werte in einer Spalte.
Dabei ist in der ersten Spalte die Beschriftung vordefiniert, d.h. es soll aber der 2 Spalte die bestimmten Daten parallel übertragen werden. Klappt auch...ABER:
Leider springt es nicht in eine neue Spalte (Column) sonder bleibt in der 2. Spalte stehen und überschreibt den alten Werte. Was ist am unteren Teil des Codes falsch?
Danke vorab
LG
Jessi
Privat

Sub cmd_Test()
Worksheets("Tabelle2").Activate
Dim lngNeueReihe As Long
'Neue Reihe berechnen
lngNeueReihe = Range("A65536").End(xlUp).Row + 1
'Werte eintragen
ActiveSheet.Cells(lngNeueReihe, 1).Value = Wert 1
ActiveSheet.Cells(lngNeueReihe, 2).Value = Besonderer Zeilenwert 1 'gilt nur für Zeilenü _
bertrag
ActiveSheet.Cells(lngNeueReihe, 3).Value = Besonderer Zeilenwert 2 'gilt nur für Zeilenü _
bertrag
ActiveSheet.Cells(lngNeueReihe, 4).Value = Wert 2
ActiveSheet.Cells(lngNeueReihe, 5).Value = Besonderer Zeilenwert 3 'gilt nur für Zeilenü _
bertrag
ActiveSheet.Cells(lngNeueReihe, 6).Value = Jahr
MsgBox ("Fertig mit Zeilenübertrag!"), vbInformation, "Hinweis für " & Application.UserName & ": _
Worksheets("TabelleFuerDiagrammanordnung").Activate
Dim lngNeueSpalte As Long
'Neue Spalte berechnen
lngNeueSpalte = Range("1:1").End(xlUp).Column + 1 '? Muss doch mit Sicherheit hier  _
anders lauten?
'Werte eintragen
ActiveSheet.Cells(1, lngNeueSpalte).Value = Wert 1
ActiveSheet.Cells(2, lngNeueSpalte).Value = Wert 2
ActiveSheet.Cells(3, lngNeueSpalte).Value = Jahr
MsgBox ("Test"), vbInformation, "Hinweis für " & Application.UserName & ":"
cmd_KVR_Formblatt.Visible = False
Worksheets("Tabelle2").Activate
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wert in neue Spalte schreiben...
29.05.2008 22:23:59
Ramses
Hallo
"..Muss doch mit Sicherheit hier anders lauten?..."
Richtig :-)
lngNeueSpalte = cells(1,columns.count).End(xlToLeft).Column + 1
Gruss Rainer

Danke Ramses! (erledigt!)
30.05.2008 08:38:08
Jessica
...wusste, dass es daran lag! ;-)
Anzeige
;

Forumthreads zu verwandten Themen

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

Werte in neue Spalte schreiben: Schritt-für-Schritt-Anleitung für Excel-VBA


Schritt-für-Schritt-Anleitung

  1. Button-Ereignis erstellen:

    • Gehe zu den Entwicklertools und füge einen Button hinzu. Weisen Sie dem Button das Makro cmd_Test zu.
  2. VBA-Code anpassen:

    • Öffne den VBA-Editor (ALT + F11) und füge den folgenden Code in das Modul ein:
    Sub cmd_Test()
       Worksheets("Tabelle2").Activate
       Dim lngNeueReihe As Long
       'Neue Reihe berechnen
       lngNeueReihe = Range("A65536").End(xlUp).Row + 1
       'Werte eintragen
       ActiveSheet.Cells(lngNeueReihe, 1).Value = Wert1
       ActiveSheet.Cells(lngNeueReihe, 2).Value = BesondererZeilenwert1
       ActiveSheet.Cells(lngNeueReihe, 3).Value = BesondererZeilenwert2
       ActiveSheet.Cells(lngNeueReihe, 4).Value = Wert2
       ActiveSheet.Cells(lngNeueReihe, 5).Value = BesondererZeilenwert3
       ActiveSheet.Cells(lngNeueReihe, 6).Value = Jahr
    
       MsgBox ("Fertig mit Zeilenübertrag!"), vbInformation, "Hinweis für " & Application.UserName
    
       ' Wechsel zum anderen Blatt
       Worksheets("TabelleFuerDiagrammanordnung").Activate
       Dim lngNeueSpalte As Long
       ' Neue Spalte berechnen
       lngNeueSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
       ' Werte eintragen
       ActiveSheet.Cells(1, lngNeueSpalte).Value = Wert1
       ActiveSheet.Cells(2, lngNeueSpalte).Value = Wert2
       ActiveSheet.Cells(3, lngNeueSpalte).Value = Jahr
    
       MsgBox ("Test"), vbInformation, "Hinweis für " & Application.UserName
       cmd_KVR_Formblatt.Visible = False
       Worksheets("Tabelle2").Activate
    End Sub
  3. Testen des Codes:

    • Klicke auf den Button, um den Code auszuführen. Überprüfe, ob die Werte korrekt in die neue Spalte geschrieben werden.

Häufige Fehler und Lösungen

  • Problem: Der Wert wird in die falsche Spalte geschrieben oder überschreibt alte Werte.

    • Lösung: Stelle sicher, dass du die Zeile lngNeueSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1 verwendest, um die nächste leere Spalte zu finden.
  • Problem: Das Makro läuft nicht.

    • Lösung: Überprüfe, ob du das Makro korrekt zugeordnet hast und ob die Arbeitsmappe im Makro-fähigen Format (.xlsm) gespeichert ist.

Alternative Methoden

  • Manuelles Einfügen: Anstatt ein Makro zu verwenden, kannst du die Werte auch manuell in die entsprechende Spalte eintragen. Dies ist jedoch zeitaufwändiger.

  • Benutze Excel-Formeln: Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch Excel-Formeln einsetzen, um Werte aus einer Spalte in eine andere zu übertragen.


Praktische Beispiele

  • Beispiel 1: Du möchtest die letzten 10 Verkaufszahlen in einer neuen Spalte sammeln. Verwende das obige VBA-Skript, um die Daten automatisch zu erfassen, ohne manuell eingreifen zu müssen.

  • Beispiel 2: Du hast ein Diagramm, das auf den Werten aus "TabelleFuerDiagrammanordnung" basiert. Mit dem korrekten VBA-Code kannst du sicherstellen, dass die Diagrammdaten immer aktuell sind.


Tipps für Profis

  • Fehlerbehandlung einfügen: Füge Fehlerbehandlungsroutinen in deinen Code ein, um unerwartete Probleme zu lösen. Beispiel:

    On Error GoTo FehlerHandler
    ' Dein Code hier
    Exit Sub
    FehlerHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Verwende Variablen sinnvoll: Nutze aussagekräftige Variablennamen, um den Code leichter lesbar zu machen. Zum Beispiel lngLetzteSpalte statt lngNeueSpalte.


FAQ: Häufige Fragen

1. Was mache ich, wenn der Wert nicht in die nächste Spalte geschrieben wird?
Überprüfe, ob du den richtigen Code verwendest, um die nächste leere Spalte zu finden: lngNeueSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1.

2. Kann ich diesen Code in jeder Excel-Version verwenden?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, jedoch kann es kleine Unterschiede geben. Teste den Code am besten in Excel 2016 oder 365.

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