Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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

Zellwert übergeben

Zellwert übergeben
Micha
Hallo VBA-Blicker,
habe folgendes Problem:
aktuell kopiere ich von Hand den Zellinhalt (Wert) einer Qullzelle in eine Zielzelle einer anderen Datei.
Von dieser Zielzelle aus wird der Inhalt mittels Makro dann auf andere Zellen verteilt.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$s$14" Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim sText As String, sSplit
Dim tmp
Dim i, v As Integer
sText = Range("a14")
' gesamtlänge string ermitteln
i = Len(sText)
' erste 18 Spalten ausfüllen
ActiveSheet.Cells(13, 1).Value = Left(sText, 1)
ActiveSheet.Cells(13, 2).Value = Mid(sText, 2, 1)
ActiveSheet.Cells(13, 3).Value = Mid(sText, 3, 1)
ActiveSheet.Cells(13, 4).Value = Mid(sText, 4, 1)
ActiveSheet.Cells(13, 5).Value = Mid(sText, 5, 1)
ActiveSheet.Cells(13, 6).Value = Mid(sText, 6, 1)
ActiveSheet.Cells(13, 7).Value = Mid(sText, 7, 1)
ActiveSheet.Cells(13, 8).Value = Mid(sText, 8, 1)
ActiveSheet.Cells(13, 9).Value = Mid(sText, 9, 1)
ActiveSheet.Cells(13, 10).Value = Mid(sText, 10, 1)
ActiveSheet.Cells(13, 11).Value = Mid(sText, 11, 1)
ActiveSheet.Cells(13, 12).Value = Mid(sText, 12, 1)
ActiveSheet.Cells(13, 13).Value = Mid(sText, 13, 1)
ActiveSheet.Cells(13, 14).Value = Mid(sText, 14, 1)
ActiveSheet.Cells(13, 15).Value = Mid(sText, 15, 1)
ActiveSheet.Cells(13, 16).Value = Mid(sText, 16, 1)
ActiveSheet.Cells(13, 17).Value = Mid(sText, 17, 1)
If i = 18 Then
ActiveSheet.Cells(13, 18).Value = Mid(sText, 18, 1)
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub

Die Übergabe von der Quellzelle auf die Zielzelle in der anderen Datei möchte ich via Makro automatisieren. Mein aufgezichnetes
Makro versagt hier jedoch leider. Kann mir jemand von euch bitte weiterhelfen?
Danke Gruß Micha

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

Betreff
Benutzer
Anzeige
AW: Zellwert übergeben
11.04.2011 15:31:40
Rudi
Hallo,
verstehe ich nicht. Was soll von wo nach wo?
Was hat $S$14 mit A14 zu tun?
Gruß
Rudi
AW: Zellwert übergeben
11.04.2011 16:08:19
Micha
Hallo Rudi,
das abgebildete Makro verteilt den Inhalt der Zelle A14 auf die Zellen A13 : R13.
Kopieren möchte ich von Mappe 1, Tabellenblatt 1 nach Mappe 2, Tabellenblatt 2.
In Mappe 1 steht der Zellinhalt den ich über die Funktion "verketten" zusammentrage in der Zelle C24. Von hier soll er per Makro nach Mappe 2 in Zelle A14, damit er von hier über folgendes Makro
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$s$14" Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim sText As String, sSplit
Dim tmp
Dim i, v As Integer
sText = Range("a14")
' gesamtlänge string ermitteln
i = Len(sText)
' erste 18 Spalten ausfüllen
ActiveSheet.Cells(13, 1).Value = Left(sText, 1)
ActiveSheet.Cells(13, 2).Value = Mid(sText, 2, 1)
ActiveSheet.Cells(13, 3).Value = Mid(sText, 3, 1)
ActiveSheet.Cells(13, 4).Value = Mid(sText, 4, 1)
ActiveSheet.Cells(13, 5).Value = Mid(sText, 5, 1)
ActiveSheet.Cells(13, 6).Value = Mid(sText, 6, 1)
ActiveSheet.Cells(13, 7).Value = Mid(sText, 7, 1)
ActiveSheet.Cells(13, 8).Value = Mid(sText, 8, 1)
ActiveSheet.Cells(13, 9).Value = Mid(sText, 9, 1)
ActiveSheet.Cells(13, 10).Value = Mid(sText, 10, 1)
ActiveSheet.Cells(13, 11).Value = Mid(sText, 11, 1)
ActiveSheet.Cells(13, 12).Value = Mid(sText, 12, 1)
ActiveSheet.Cells(13, 13).Value = Mid(sText, 13, 1)
ActiveSheet.Cells(13, 14).Value = Mid(sText, 14, 1)
ActiveSheet.Cells(13, 15).Value = Mid(sText, 15, 1)
ActiveSheet.Cells(13, 16).Value = Mid(sText, 16, 1)
ActiveSheet.Cells(13, 17).Value = Mid(sText, 17, 1)
If i = 18 Then
ActiveSheet.Cells(13, 18).Value = Mid(sText, 18, 1)
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
auf den Bereich A13 : R13 verteilt werden kann.
Das Makro zum übergeben des "Wert" von Mappe 1 nach Mappe 2 funktioniert über den Makrorekorder nicht.
Danke gruß Micha
Anzeige
AW: Zellwert übergeben
11.04.2011 16:18:28
Rudi
Hallo,
in ein Modul in Mappe1:
Private Sub C24nachA14()
Dim sText As String
Dim i As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
With Workbooks("Mappe2.xls").Sheets(2)
ThisWorkbook.Sheets(1).Range("C24").Copy .Range("A14")
sText = .Range("A14")
For i = 1 To Len(sText)
.Cells(13, 1) = Mid(sText, i, 1)
Next i
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
AW: Zellwert übergeben
12.04.2011 07:11:51
Micha
Guten Morgen Rudi,
zunächst vielen Dank für Deine Mühen.
Benötige alledings noch etwas Hilfe, da in meiner Mappe 1 und Mappe 2 nichts passiert.
Habe den Code jetzt in ein Modul in Mappe 1 kopiert - wie / wann wird dieser Code dann ausgeführt?
Muss / kann ich das bisherige Makro, das mir den Textinhalt verteilt löschen?
Gruß
Micha
Anzeige
AW: Zellwert übergeben
12.04.2011 07:53:39
Matthias
Hallo
In Mappe1 passiert ja auch nichts (von da kopierst Du ja auch nur)
In Mappe2 wird korrekt eingetragen.
Statt Private Sub C24nachA14()
evtl nur Sub C24nachA14()
Button auf Quelltabelle legen und Code zuweisen.
Userbild


Hinweis:
Du musst diese Zeile(=fett)
For i = 1 To Len(sText)
.Cells(13, 1) = Mid(sText, i, 1)
Next i
ändern in
For i = 1 To Len(sText)
.Cells(13, i) = Mid(sText, i, 1)
Next i
sonst wird ja ("A13") immer wieder überschrieben!
Gruß Matthias
Anzeige
AW: Zellwert übergeben
12.04.2011 10:08:30
Micha
Hallo Matthias,
danke für Deine Tipps.
Ich knall gleich durch! Wenn ich zwei neue Mappen öffne funktioniert der Code.
Wenn ich ihn in meine bestehende Mappen kopiere und die Bezüge anpasse hat er mit dem Namen der Zieldatei offensichtlich ein Problem. Den Namen habe ich aber aus *Datei*Eigenschaften per Strg+ C / V rüberkopiert
With Workbooks("LAG Lagerschein neu.xls").Sheets(1) In dieser Zeile kommt die Fehlermeldung "Laufzeitfehler 9 / Index außerhalb des gültigen Bereichs"
Gibt es hier Regeln hinsichtlich der Namensgestaltung?
Gruß Micha
Hinweis
12.04.2011 10:13:16
Micha
Hallo,
ich fürchte eine Information ist etwas untergegangen.
In der Quelldatei in Zelle C24 steht folgende Formel:
=WENN(ZÄHLENWENN(F29:O29;"Bitte wählen")größerals0;"";VERKETTEN(B30;C30;D30;E30;F30;G30;H30;I30;J30;K30;L30;M30;N30;O30;))
Euer Code übergibt abe nur das Format!
Anzeige
lad mal eine Bsp. hoch
12.04.2011 10:50:05
Matthias
Hallo
Na dann lad mal ne Mappe hoch mit einem aussagekräftigen Beispiel.
in Tabelle1: die QuellDaten inkl. der Fomel
in Tabelle2: die Daten wie Du Dir (was und wo) vorstellst.
So richtig verstehe ich nämlich nicht was Du genau willst.
Gruß Matthias
AW: lad mal eine Bsp. hoch
12.04.2011 15:26:57
Micha
Hallo Matthias,
anbei den Link zu den Bsp-dateien.
Hoffe mein Anliegen wird damit verständlicher.
https://www.herber.de/bbs/user/74357.zip
Anzeige
AW: lad mal eine Bsp. hoch
13.04.2011 10:37:23
Matthias
Hallo
Probiers mal ...

Dim sText As String
Dim i As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
With Workbooks("Bsp2.xls").Sheets(2)
.Range("A14").Value = ThisWorkbook.Sheets(1).Range("C24").Value
sText = .Range("A14").Value
For i = 1 To Len(sText)
.Cells(13, i) = Mid(sText, i, 1)
Next i
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
Gruß Matthias
AW: lad mal eine Bsp. hoch
13.04.2011 15:03:26
Micha
Hallo Matthias,
vielen Dank. Der Code funktioniert grundsätzlich super.
Leider nur nicht in meiner original Datei. Habe bereits alle anderen Code gelöscht, Makros aktiviert.
Keine Ahnung weshalb das nicht geht - schade.
Gruß Micha
Anzeige
was ergibt >>EnableEvents<< beim Testen
14.04.2011 09:21:41
Matthias
Hallo
Sub test()
MsgBox Application.EnableEvents
End Sub
sollte WAHR sein.
wenn der Code FALSCH anzeigt, mußt Du es erst wieder einschalten
Sub Einschalten()
Application.EnableEvents = True
End Sub
dann nochmal probieren.
Viel mehr kann ih nicht für Dich tun.
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige