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

Text aus Zelle in eine bestimmte andere kopieren

Text aus Zelle in eine bestimmte andere kopieren
09.11.2015 11:10:39
Martin
Hi Forum,
ich brauche wieder einmal eure Hilfe.
Ich habe in einem Beispiel einen Text in einer Zelle stehen und will diesen per klick auf einen Button in eine andere Zelle kopieren.
Als Beispiel: (Zeilen und Spalten können sich ändern)
- Der zu kopierende Text steht z.B.: in der Zelle A3="Text 1"
- Die zu kopierende Zelle ergibt sich aus einer Zahl die in D3=3 steht
- Ab der Spalte E stehen in der Zeile 1 fortlaufende Zahlen (E1=1; F1=2; G1=3; usw.)
Nach klick soll das Makro die Zahl in der Zelle D3 auslesen und in der entsprechenden Spalte welche die gleiche Zahl in der Zeile 1 hat hinein kopieren. Die Zeile soll dabei die selbe sein wo sich auch der Text und die Zahl befindet (in diesem Beispiel Zeile 3).
In diesem Beispiel ist das Ergebnis: G3="Text 1"
Hier eine Beispieldatei
https://www.herber.de/bbs/user/101328.xlsx
Danke im voraus für eure Hilfe!
LG
Martin

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum hier nicht eine einfache Formel ? ...
09.11.2015 11:18:27
...
Hallo Martin,
... in E3: =WENN(SPALTE(A1)=$D3;$A3;"")
und diese nach unten und rechts ziehend kopieren.
Gruß Werner
.. , - ...

AW: warum hier nicht eine einfache Formel ? ...
09.11.2015 11:25:54
Martin
Hallo Werner,
danke für die schnelle Antwort.
Die Lösung habe ich schon versucht. Im richtigen Beispiel sind die Spalten jedoch sehr schmal und der Text kann deutlich länger sein. Wenn ich die Formel allen Zellen stehen habe wird der Text leider nicht ausgeschrieben.
Danke für deine Hilfe und lg
Martin

AW: noch offen
09.11.2015 11:36:57
Martin
hab vergessen den Haken zu setzen :(

AW: die Ergebnisweerte sind schon korrekt ...
09.11.2015 11:50:41
...
Hallo Martin,
... nur möglicherweise nicht gleich vollständig zu sehen, dazu ist es doch nur notwendig, entweder die Spaltenbreite mit einem Mausklick anzupassen oder den Zellen ein Zellenumbruchformat zu zuordnen und dann evtl. zusätzlich die Zeilenhöhe noch anzupassen.
Gruß Werner
.. , - ...

Anzeige
AW:Werte korrekt, jedoch hier nicht zu realisieren
09.11.2015 11:58:27
Martin
Hi Werner,
danke dir! Ich bin mir über diese Möglichkeiten bewusst. Allerdings will ich das nicht, da dadurch das komplette Layout der Mappe beschädigt wird.
Die einzelnen Spalten stellen Monate über mehrere Jahre da. Wenn ich da jetzt eine Spalte so erweitere, dass der Text platz hat, ist der eine Monat gleich groß wie die restlichen Monate der ganzen Abbildung zusammen. Zum zweiten würde ich mit dem Zeilenumbruch gerade mal ein paar Buchstaben pro Zeile lesbar haben, deshalb ist auch dies keine Alternative. Die höhe der Zeile darf ebenso nicht verändert werden.
Es muss in meinen Augen eine VBA Lösung sein.
LG
Martin

Anzeige
Spaltenbreite. Nochmal von vorn!
09.11.2015 11:53:55
vorn!
Hallo Martin,
Kannst du nochmal deine Anforderung genau beschreiben?
Soll der Text aus Spalte A nun in der Zielzelle stehen, oder nur im Kommentar der Zielzelle?
Klar siehst du den Text nicht mehr wenn die Zellen rechts davon füllst. Ab was willst Du? Unlesbar kleinen Text, einen Kommentar, einen lesbaren Text in genügend breiten Spalten oder ... wat?
Gruess Hansueli

AW: Spaltenbreite. Nochmal von vorn!
09.11.2015 12:04:40
vorn!
Hi Hansueli, danke für deine Hilfe!
von meinem Beispiel:
Ich möchte das der Text von A3 in G3 steht und zwar so als ob ich ihn da mit Hand rein geschrieben hätte.
Die restlichen Zellen sollen leer sein.
Die Spaltenbreite darf sich nicht ändern
Die Zeilenhöhe darf sich nicht ändern
Der Text soll kein Kommentar sein, sondern normaler - gut lesbarer Text
Danke und lg
Martin

Anzeige
AW: Spaltenbreite. Nochmal von vorn!
09.11.2015 12:07:08
vorn!
Achso...
das Kommentar aus meinem Beispiel war nur als Info für euch. Ich verstehe jetzt warum das verwirrt hat.
Also kein Kommentar, nur plain Text

Vergiss es ganz einfach!
09.11.2015 12:10:28
EtoPHG
Hallo Martin,
Was zum Teufel stellst du dir vor, was VBA da zaubern könnte. In dem kleinen Feldchen von ca. 5 x 5 mm kann nun mal dein Text nicht untergebracht werden, ohne das du eine Feldelektronenmikroskop zum Lesen brauchst. Wenn du keine Formel/Darstellungsformat Lösung findest, dann kannst du auch VBA streichen!
Gruess Hansueli

AW: das nutze Format "an Zellgröße anpassen" owT
09.11.2015 12:09:23
...
Gruß Werner
.. , - ...

AW: ich meinte natürlich: "da nutze..." und ...
09.11.2015 12:14:34
...
Hallo Martin,
... eine andere Lösung sehe ich bei Deinen Bedingungsvorgaben nicht, auch nicht mit VBA (außer dass dann dort in den restlichen Zellen keine Formel mit dem Formelergebnis "" steht.
Gruß Werner
.. , - ...

Anzeige
AW: das nutze Format "an Zellgröße anpassen" owT
09.11.2015 12:18:22
Martin
Hallo nochmal.
Ich glaube ihr versteht mich falsch, oder ich drücke mich falsch aus...
Der Text kann ja ruhig über mehrere Zellen gehen, nur funktioniert das nicht mit einer Formel...
Wenn ich es manuell mache würde es so sein:
Klick A3 - Strg+C - Klick G3 (Oder entsprechende Zelle) - Strg+V
Hier nochmal eine Beispieldatei mit zwei Tabellenblättern. einmal das Ursprüngliche Blatt und als weiteres Blatt so wie das Ergebnis sein soll:
https://www.herber.de/bbs/user/101331.xlsx
Danke nochmal und LG

Anzeige
AW: ok, wenn so, dann wirklich nur mit VBA owT
09.11.2015 12:21:00
...
Gruß Werner
.. , - ...

AW: hab wohl falsch erklärt...
09.11.2015 12:23:29
Martin
Das sehe ich eben auch so... :)
Danke trotzdem für deine Hilfe!

allerdings...
09.11.2015 13:27:08
EtoPHG
Hallo Martin,
Warum du das nicht in deiner ersten Datei erklären konntest, bleibt mir schleierhaft.
Diesen Code in das Tabellenblatt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lLastCol As Long
Dim rC As Range
If Intersect(Target, Range("A:A,D:D")) Is Nothing Or _
Target.Row 
Gruess Hansueli

AW: allerdings...
09.11.2015 13:39:34
Martin
Perfekt! Danke Hansueli!
Ich dachte ich hätte mich klar ausgedrückt. Werde es mir das nächste mal aber zu Herzen nehmen und versuchen deutlicher zu erklären :)
Danke nochmal und lg
Martin

Anzeige
leider alles andere als perfekt...
09.11.2015 13:59:04
EtoPHG
Hallo Martin,
Wenn die Zielspalte gelöscht oder noch nicht vorhanden ist, verursacht obiger Vorschlag einen Fehler, also ersetze den Code besser durch diesen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lLastCol As Long, lTargetCol As Long
Dim rC As Range
If Intersect(Target, Range("A:A,D:D")) Is Nothing Or _
Target.Row  Val(Cells(1, Columns.Count).End(xlToLeft)) Then
MsgBox "Zielspalte in D undefiniert oder ausserhalb des Bereichs!", vbExclamation
Exit Sub
End If
Application.EnableEvents = False
For Each rC In Intersect(Target, Range("A:A,D:D"))
Range(Cells(rC.Row, 5), Cells(rC.Row, lLastCol)).ClearContents
Cells(rC.Row, lTargetCol + 4) = Cells(rC.Row, 1).Text
Next rC
Application.EnableEvents = True
End Sub
Gruess Hansueli

Anzeige
AW: leider alles andere als perfekt...
09.11.2015 15:08:36
Martin
Hallo Hansueli!
Nochmal vielen danke für deine Hilfe!
Ich habe etwas Zeit gebraucht um zu verstehen was der Code mach, habe es aber jetzt geschafft ihn in meine Mappe einzubauen (Habe andere Spalten verwendet als im Beispiel). Es funktioniert jetzt soweit.
Das einzige Problem das ich noch habe ist, dass die Zahlen in der Spalte D durch eine Formel von einem anderen Tabellenblatt übernommen werden. Wenn ich die Werte jetzt im zweiten Tabellenblatt ändere, passiert in dem Fall logischerweise nichts.
Wenn ich die Formel neu eingebe (Doppelklick in die Zelle&Enter) dann funkioniert es. Die Texte im Beispiel müssen nicht sofort bei Eingabe in die Zelle geschrieben werden, sondern erst wenn ich das Blatt aktiviere (Kann auch eine Schaltfläche sein)
Ich habe das mit dem Rekorder aufgenommen und folgendermaßen eingebaut:
Private Sub Worksheet_Activate()
Range("B14").Select
ActiveCell.FormulaR1C1 = "=Berechnung!R[14]C[6]"
Range("B16").Select
ActiveCell.FormulaR1C1 = "=Berechnung!R[13]C[6]"
Range("B18").Select
ActiveCell.FormulaR1C1 = "=Berechnung!R[12]C[6]"
Range("B20").Select
ActiveCell.FormulaR1C1 = "=Berechnung!R[11]C[6]"
Range("B21").Select
End Sub
Gibt es da vielleicht eine elegantere Lösung dafür? R1C1 hat der Rekorder gemacht. Ich arbeite normalerweise mit A1 Werten...
Danke nochmal und lg
Martin

Anzeige
gar nix perfekt deine Problembeschreibung
09.11.2015 16:14:12
EtoPHG
Hallo Peter,
Dieser aufgezeichnete Code nützt mir gar nix, da keine stringenten Regeln daraus abzuleiten sind.
Deine Problembeschreibung erweitert sich mit jedem Lösungsvorschlag.
Deine Beispielmappe hat ein anderen Aufbau, wie dein Original.
Mein Vorschlag beruht auf einer manuellen Änderung der Zellinhalte.
Ein Vorschlag für einen Änderung von Berechnungsresultaten würde komplett anders aussehen, aber dafür wäre der genaue Aufbau der Datei und Blätter, inkl. der Formeln und manuell manipulierter Bereiche, welche die Resultate der Formeln beeinflussen, notwendig.
So kann ich dir keine Lösung anbieten.
Gruess Hansueli

Anzeige
AW: nochmal auf Anfang
09.11.2015 17:19:39
Martin
Hi Hansueli,
sorry, ich dachte das macht keinen Unterschied. Ich möchte den Code auch verstehen und nicht nur Copy&Paste und gut. Aus diesem Grund mach ich meine Beispiele auch nicht immer exakt gleich wie das Original ist. Tut mir leid, dass du in dem Fall damit mehr oder weniger umsonst arbeit hattest.
Ich habe jetzt nochmal eine Beispieldatei gemacht. Alles was zu meinem Problem gehört, ist nun genau so wie im Original.
https://www.herber.de/bbs/user/101359.xlsx
Es gibt das Tabellenblatt Eingabe wo alles rein geschrieben wird und das Blatt Ausgabe wo nur die Anzeige der Werte passieren soll.
Danke nochmal und lg
Martin

Farbbalken erstellen
10.11.2015 22:17:13
Peter
Hallo Martin,
ich verfolge schon eine Zeitlang Deinen Thread. Die Problemstellung ist heikel, und es findet sich (bis jetzt) niemand, eine Lösung zu erarbeiten. Interessehalber habe ich mal mit meinem "alten" Excel2007 eine Lösung erarbeitet, in der Hoffnung, dass auf Deinem "modernen" System die beigefügte Datei funktioniert. Die Monate "von" und "bis" lassen sich durch einfache Umrechnung den Spaltennummern zuordnen. Diese kann man durch eine Funktion in Spaltenbuchstaben umwandeln. Hinzu kommt noch die Zeilennummer, die ich durch eine Formel ermittle. Schwierig erwies sich das Einfügen der Leerzeilen in der Auswertung. In meiner Lösung benötige ich etliche Regiezeilen, die ich jeweils im oberen Teil der Tabellen untergebracht habe. Du kannst sie aus- und einblenden.
Hier nun meine Datei:
https://www.herber.de/bbs/user/101396.xlsm
Bitte zunächst mal ausprobieren, ob es bei Dir klappt. Falls ja und Du gerne Erläuterungen zu den Makrobefehlen hättest, gebe bitte Nachricht. Ich melde mich dann nocheinmal.
Mit freundlichem Gruß
Peter Kloßek

AW: Farbbalken erstellen
11.11.2015 14:26:29
Martin
Hallo Peter!
das ist nicht genau das was ich suche aber danke trotzdem vielmals für deine Hilfe!
lg
Martin

AW: nochmal auf Anfang
11.11.2015 10:09:52
EtoPHG
Hallo Martin,
Diesen Code in das Tabellenblatt "Eingabe"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rC As Range
If Intersect(Target, Range(Cells(8, 3), Cells(Rows.Count, 3).End(xlUp))) Is Nothing _
Then Exit Sub
With Worksheets("Auswertung")
For Each rC In Intersect(Target, Range(Cells(8, 3), Cells(Rows.Count, 3).End(xlUp)))
If rC > 0 Then
.Range(.Cells(Target.Row * 2 - 2, 10), _
.Cells(Target.Row * 2 - 2, .Columns.Count)).ClearContents
.Cells(Target.Row * 2 - 2, Target + 9) = rC.Offset(, -1)
End If
Next rC
End With
End Sub

Gruess Hansueli

AW: jetzt ist es aber perfekt!
11.11.2015 14:30:20
Martin
Hi Hansueli!
Danke dir! Genau das ist es was ich brauche. Ich habe es jetzt zwar nur schnell getestet, werde aber erst Anfang nächster Woche dazu kommen es im Original einzubauen.
Ich hoffe ich darf mich nochmal melden sollte ich dann noch Fragen haben.
Vielen Danke nochmal und lg
Martin

AW: jetzt ist es aber perfekt mit Fehler!
11.11.2015 14:50:19
EtoPHG
Hallo Martin,
Nimm den richtig gestellten Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rC As Range
If Intersect(Target, Range(Cells(8, 3), Cells(Rows.Count, 3).End(xlUp))) Is Nothing _
Then Exit Sub
With Worksheets("Auswertung")
For Each rC In Intersect(Target, Range(Cells(8, 3), Cells(Rows.Count, 3).End(xlUp)))
If rC > 0 Then
.Range(.Cells(rC.Row * 2 - 2, 10), _
.Cells(rC.Row * 2 - 2, .Columns.Count)).ClearContents
.Cells(rC.Row * 2 - 2, rC + 9) = rC.Offset(, -1)
End If
Next rC
End With
End Sub
Gruess Hansueli

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige