Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Lösung

VBA-Lösung
25.10.2012 08:32:38
Fritz_W
Hallo Forumsbesucher,
ich bitte um Unterstützung bei der Umsetzung folgenden Vorhabens:
Ich möchte aus der aktiven Tabelle ("Daten") jeweils den Wert aus Zelle O16 in die Tabelle "Statistik" übertragen und zwar wie folgt:
In der Tabelle "Statistik" stehen im Zellbereich "A2:A37" aufsteigend die Zahlen 1 bis 36. Wenn das Makro ausgeführt wird, soll in die Zahl aus Daten!O16 in die erste leere Zelle neben der gleichen Zahl des Zellbereichs Statistik!A2:A37 (also gleiche Zeile) geschrieben werden, der auch in der Zelle Daten!O13 steht.
Beispiel: In Daten!O13 steht 4.
Da in der Tabelle "Statistik" die Zelle A5 die 4 enthält, sollte der Wert aus Daten!O16 zunächst in die erste leere Zelle der Zeile 5 beginnend ab Spalte B eingetragen werden. Ist Zelle B5 leer, dann eben in B5, ansonsten - falls leer in C5 usw.
Ich hoffe, mein Anliegen nachvollziehbar erklärt zu haben und freue mich über eure Hilfe.
mfg
Fritz

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Lösung
25.10.2012 09:06:25
Beverly
Hi Fritz,
Sub Uebertragen()
Dim rngZelle As Range
Dim intSpalte As Integer
With Worksheets("Statistik")
Set rngZelle = .Range("A2:A37").Find(Range("O16"), lookat:=xlWhole)
If Not rngZelle Is Nothing Then
intSpalte = IIf(IsEmpty(.Cells(rngZelle.Row, .Columns.Count)), _
.Cells(rngZelle.Row, .Columns.Count).End(xlToLeft).Column, .Columns.Count) + 1
.Cells(rngZelle.Row, intSpalte) = Range("O13")
End If
Set rngZelle = Nothing
End With
End Sub


Anzeige
AW: VBA-Lösung
25.10.2012 09:38:48
Fritz_W
Hallo Karin,
wunderbar, funktioniert wie gewünscht.
Ganz herzlichen Dank.
Viele Grüße
Fritz

VBA Wert übertragen
25.10.2012 09:25:03
Erich
Hi Fritz,
oder vielleicht so?

Sub Uebertragen2()
Dim wksDaten As Worksheet, lngSp As Long
Set wksDaten = Sheets("Daten")
With Worksheets("Statistik")
lngSp = .Cells(wksDaten.Range("O13"), .Columns.Count).End(xlToLeft).Column
.Cells(wksDaten.Range("O13") + 1, lngSp + 1) = wksDaten.Range("O16").Value
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

VBA Wert übertragen - Korrektur
25.10.2012 09:35:02
Erich
Hi Fritz,
sorry, da hatte ich ein mal "+ 1" vergessen. Also neu:

Sub Uebertragen2()
Dim wksDaten As Worksheet, lngSp As Long
Set wksDaten = Sheets("Daten")
With Worksheets("Statistik")
lngSp = .Cells(wksDaten.Range("O13") + 1, .Columns.Count).End(xlToLeft).Column
.Cells(wksDaten.Range("O13") + 1, lngSp + 1) = wksDaten.Range("O16").Value
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: VBA Wert übertragen - Korrektur
25.10.2012 10:13:40
Fritz_W
Hallo Erich,
funktioniert immer noch nicht wie gewünscht.
Mich plagt mein schlechtes Gewissen, ob meiner unzureichenden Erklärungen.
Bitte deshalb mochmals um Nachsicht.
Dir ganz herzlichen Dank.
Viele Grüße
Fritz

Klärung?
25.10.2012 11:01:52
Erich
Hi Fritz,
mich würde auch interessieren, was da falsch ist.
Wie ich es sehe, steht in O13 eine Kennung für die Zielzeile, in O16 der zu übertragende Wert.
In Karins Code sind die beiden wohl vertauscht.
Meinen korrigierten Code halte ich für ziemlich "unverdächtig".
Stehen die Zahlen 1 bis 36 bei dir tatsächlich in den Zellen Statistik!A2:A37 ?
Das setzt mein Code voraus. (Wenn 7 in O13 steht, kommt der Wert in Zeile 8.)
Wenn es noch nicht klappt:
Wie sieht dein angepasster Code aus? Was genau läuft falsch, welches Ergebnis kommt raus?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Klärung? - So funktionierts
25.10.2012 11:36:43
Fritz_W
Hallo Erich,
deinen zweiten Code konnte ich nun so anpassen, dass es wie gewünscht funktioniert.
So sieht der angepasste Code aus:
Sub Uebertragen2()
Dim wksDaten As Worksheet, lngSp As Long
Set wksDaten = Sheets("Daten")
With Worksheets("Statistik")
lngSp = .Cells(wksDaten.Range("O16") + 1, .Columns.Count).End(xlToLeft).Column
.Cells(wksDaten.Range("O16") + 1, lngSp + 1) = wksDaten.Range("O13").Value
End With
End Sub
Nochmals ganz herzlichen Dank!
Beste Grüße
Fritz

Zweifel...
25.10.2012 11:47:18
Erich
Hi Fritz,
schreib doch mal - entsprechend deinem Beispiel im ersten Beiterag - in O13 eine 4
und in O16 als zu übertragenden Wert den Text xyz.
Dann teste mal meinen und deinen angepassen Code...
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Zweifel...
25.10.2012 12:19:24
Fritz_W
Hallo Erich,
ich vermute nach wie vor, dass ein Missverständnis vorliegt:
Es soll nicht der Wert aus O16, sondern aus O13 übertragen werden.
Unter diesen Voraussetzungen funktioniert (nach meinen bisherigen Erfahrungen)der angepasste Code tadellos.
Viele Grüße
Fritz

kein Missverständnis
25.10.2012 12:48:30
Erich
Hi Fritz,
nein, ich sehe kein Missverständnis.
Du hast m. E. wirklich O13 und O16 gegenüber deinem ersten Beitrag vertauscht.
Jetzt steht die 4 bei dir in O16, in deinem ersten Beitrag stand sie in O13.
Lies doch bitte deinen ersten Beitrag noch mal genau durch.
Wo steht dort die Zahl (1 bis 36), und aus welcher Zelle soll der Wert übertragen werden?
Danach richtete sich mein Code.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: kein Missverständnis
25.10.2012 12:59:04
Fritz_W
Hallo Erich,
ja, das tut mir dann aufrichtig leid.
Hab mich da wohl falsch ausgedrückt.
Nochmals ganz herzlichen Dank auch für Deine Geduld und Nachsicht.
Viele Grüße
Fritz

alles klar
25.10.2012 13:06:58
Erich
Hi Fritz,
kein "leid", kein "falsch", keine negativen Gefühle, keine Nachsicht!
Ich hatte nur an mir selbst gezeifelt, mich gefragt, ob ich noch in der Lage bin,
einen recht übersichtlichen Sachverhalt richtig zu erfassn... :-)
Bleibt noch die (nicht ernste, nicht zu beantwortende, rhetorische) Frage:
Woher hat's Karin gewusst? :-)
Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: VBA Wert übertragen
25.10.2012 09:59:49
Fritz_W
Hallo Erich,
zunächst auch Dir ganz herzlichen Dank für deine Unterstützung.
Irgendwie hab ich mich aber wohl missverständlich ausgedrückt.
Ich vermutete zunächst, dass in deinem Code möglicherweise die Zellen O13 und 16 verwechselt wurden und hab versucht, den Code entsprechend anzupassen, aber so wars dann wohl doch nicht. Jedenfalls hab ich es nicht geschafft, den Code in meinem Sinne anzupassen.
Der Code von Karin funktioniert aber, somit musst Du Dich nicht unbedingt mehr bemühen.
Wenn Du den Fehler aber "auf die Schnelle" erkennst, würds mich dennoch interessieren.
Viele Grüße
Fritz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige