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

Forumthread: Werte in bestimmte Zelle schreiben

Werte in bestimmte Zelle schreiben
Jara
Hallo,
leider habe ich in der SuFu nichts gefunden.
Ich mache erst seit ca. 7 Tagen VBA und hoffe Ihr könnte mir helfen. Ich lasse Werte aus einer Tabelle in die andere Schreiben. Jedoch möchte ich gerne das die Werte nicht bei B2 anfangen, sondern zb bei B19.
Mein Code sieht derzeit so aus!
If str1 = "Haus" And str2 = "Auto" Then _
Sheets("Auto").Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = strAuto
Sheets("Haus").Cells(Rows.Count, "C").End(xlUp).Offset(1, 0) = strHaus
...... usw
elseif ... usw
Der Befehl Exd(xlUp) sucht ja von oben die Tabelle nach der nächsten freien Zelle richtig? Wie auch immer, ich bekomme es nicht ohne Eure Hilfe gelöst :)
VG
Anzeige
AW: Werte in bestimmte Zelle schreiben
15.07.2009 15:11:32
Tino
Hallo,
nein xlUp sucht von unten nach oben nach der ersten belegten Zelle.
Für die nächste freie Zelle müsste es so gehen.
Sub Beispiel()
Dim rZelle As Range

Set rZelle = IIf(IsEmpty(Range("A1")), Range("A1"), Range("A1").End(xlDown).Offset(1, 0))

MsgBox "nächste leere Zelle ist " & rZelle.Address(0, 0)

End Sub

Gruß Tino
Anzeige
Mind. in Zeile 19 schreiben
15.07.2009 15:17:30
NoNet
Hallo Jara,
ich würde das so lösen :
    Dim lngZ As Long
If str1 = "Haus" And str2 = "Auto" Then
With Sheets("Auto")
lngZ = Application.MaxChange(18, .Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).Row) _
.Cells(lngZ, "B") = strAuto
End With
With Sheets("Haus")
lngZ = Application.MaxChange(18, .Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).Row) _
.Cells(lngZ, "C") = strHaus
End With
End If

Gruß, NoNet
Anzeige
Kleine Änderungen
16.07.2009 08:44:35
Erich
Hi Jara und NoNet,
hier NoNets Code mit kleinen Änderungen:
(statt MaxChange sollte da wohl nur Max stehen)

Option Explicit
Sub tst()
Dim str1 As String, str2 As String
Dim strHaus As String, strAuto As String
Dim lngZ As Long
str1 = "Haus"
str2 = "Auto"
strHaus = "abc"
strAuto = "def"
If str1 = "Haus" And str2 = "Auto" Then
With Sheets("Auto")
lngZ = Application.Max(19, .Cells(.Rows.Count, 2).End(xlUp).Row + 1)
.Cells(lngZ, 2) = strAuto
End With
With Sheets("Auto")
lngZ = Application.Max(19, .Cells(.Rows.Count, 3).End(xlUp).Row + 1)
.Cells(lngZ, 3) = strHaus
End With
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Uuups - wie ist denn das passiert ? - Danke..
16.07.2009 11:28:16
NoNet
Hallo Erich,
vielen Dank : sehr gut aufgepasst ! Das sollte natürlich wirklich .MAX und nicht .MaxChange heißen !
Da war die Intellisense des VBA-Editors mal wieder schneller als meine TAB-Taste.
Gruß, NoNet
AW: Uuups - wie ist denn das passiert ? - Danke..
17.07.2009 10:21:35
Jara
Hi Erich,
ich bekomme bei Deinem Code folgende Meldung
lngZ = Application.Max(19, .Cells(.Rows.Count, 2).End(xlUp).Row + 1) _
.Cells(lngZ, 2) = strHandbook
Objekt erforderlich (Fehler 424)
VG Jara
Anzeige
AW: Uuups - wie ist denn das passiert ? - Danke..
17.07.2009 10:48:49
Jara
Vergessen Frage noch offen anzuklicken :)
AW: Uuups - wie ist denn das passiert ? - Danke..
17.07.2009 12:43:48
Rudi
Hallo,
mach mal die _ weg.
Gruß
Rudi
Ohne Unterstrich!
17.07.2009 13:02:07
Erich
Hi Jara,
bei meinem(?) Code stehen am Ende der "lngZ ="-Zeilen keine Unterstriche (Fortsetzungszeichen).
(Das hat Rudi ja schon geschrieben.)
Dafür stand in meinem Code zweimal die Zeile "With Sheets("Haus")".
Einmal hätte da natürlich "With Sheets("Auto")" stehen müssen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Ohne Unterstrich!
17.07.2009 13:36:39
Jara
Hi Erich,
hab die Unterstrichte weggemacht. Jedoch immer noch die gleiche Meldung für diese Zeile:
lngZ = Application.Max(19, .Cells(.Rows.Count, 2).End(xlUp).Row + 1).Cells(lngZ, 2) = strHandbook
Das mit der With hab ich schon korrigiert :)
VG Jara
AW: Ohne Unterstrich!
17.07.2009 14:46:37
Jara
Das heisst natürlich Unterstriche, nicht strichte :o)
Anzeige
AW: Ohne Unterstrich!
17.07.2009 14:51:06
Rudi
wer sagt denn, dass alles in eine Zeile gehört?
lngZ = Application.Max(19, .Cells(.Rows.Count, 2).End(xlUp).Row + 1)
.Cells(lngZ, 2) = strHandbook
Du solltest mal versuchen zu verstehen, was passiert.
Gruß
Rudi
AW: Ohne Unterstrich!
17.07.2009 15:24:42
Jara
Danke. Deshalb auch mein Level bei VBA Kenntnisse ;)
Anzeige
;

Forumthreads zu verwandten Themen

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 bestimmte Zelle schreiben


Schritt-für-Schritt-Anleitung

Um Werte in eine bestimmte Zelle in Excel mit VBA zu schreiben, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.
  3. Füge den Code ein: Verwende den folgenden VBA-Code, um Werte in die Zelle B19 zu schreiben.
Sub WerteInZelleSchreiben()
    Dim strAuto As String
    Dim strHaus As String
    strAuto = "Auto Wert"
    strHaus = "Haus Wert"

    With Sheets("Auto")
        .Cells(Application.Max(19, .Cells(Rows.Count, "B").End(xlUp).Row + 1), "B") = strAuto
    End With

    With Sheets("Haus")
        .Cells(Application.Max(19, .Cells(Rows.Count, "C").End(xlUp).Row + 1), "C") = strHaus
    End With
End Sub
  1. Führe das Makro aus: Drücke F5, um das Makro auszuführen und die Werte zu schreiben.

Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Schreiben von Werten in Zellen auftreten können, sowie deren Lösungen:

  • Fehler 424: Objekt erforderlich:

    • Lösung: Stelle sicher, dass die With-Anweisung korrekt ist und die Richtigkeit der Referenzen überprüft wird. Achte darauf, dass kein Unterstrich am Ende der Zeilen steht, die nicht fortgesetzt werden sollen.
  • Falsche Zelle wird angesprochen:

    • Lösung: Überprüfe die Zellreferenzen im Code. Achte darauf, dass du die richtigen Spalten und Zeilen verwendest.

Alternative Methoden

Wenn du Werte in eine Zelle schreiben möchtest, gibt es auch andere Methoden, die du verwenden kannst:

  1. Excel Formel: Du kannst in einer Zelle eine Formel verwenden, um Werte dynamisch zu berechnen.
  2. Excel ohne VBA: Du kannst Werte manuell in die Zelle eingeben oder durch Kopieren und Einfügen übertragen.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Werte in bestimmte Zellen schreiben kannst:

  • Beispiel 1: Um einen festen Wert in Zelle A1 zu schreiben:
Sub SchreibeWertInZelle()
    Sheets("Tabelle1").Range("A1").Value = "Festwert"
End Sub
  • Beispiel 2: Um Werte basierend auf Bedingungen zu schreiben:
Sub BedingteWerteSchreiben()
    If SomeCondition Then
        Sheets("Tabelle1").Range("B1").Value = "Bedingter Wert"
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Nutze die With-Anweisung, um die Lesbarkeit deines Codes zu verbessern, besonders wenn du mehrere Zellen in einem Arbeitsblatt ansprechen möchtest.
  • Überlege, ob du Excel-Formeln anstelle von VBA verwenden möchtest, wenn die Aufgabe einfacher ist.

FAQ: Häufige Fragen

1. Wie kann ich Werte ohne VBA in Zellen schreiben?
Du kannst Werte direkt in die Zelle eingeben oder eine Formel verwenden, um die Berechnung vorzunehmen.

2. Was ist der Unterschied zwischen xlUp und xlDown?
xlUp sucht von unten nach oben nach der nächsten belegten Zelle, während xlDown von oben nach unten sucht.

3. Kann ich auch mehrere Werte gleichzeitig schreiben?
Ja, du kannst mehrere Werte in einer Schleife schreiben, indem du die For-Schleife verwendest, um durch die Zellen zu iterieren und Werte zuzuweisen.

4. Wie kann ich Fehler beim Schreiben in Zellen vermeiden?
Achte darauf, dass deine Zellreferenzen korrekt sind und überprüfe, ob die Zellen, in die du schreiben möchtest, nicht geschützt sind.

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