Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1284to1288
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

Daten kopieren

Daten kopieren
07.11.2012 16:04:19
Snewi
Hallo ich kopiere Werte mit folgendem Syntax:

Sub kopieren_ELO_Stoer()
Dim rngC As Range
Dim lngZ As Long
lngZ = 54
Application.ScreenUpdating = False
Sheets("Bericht").Select
Range("C54:L83").Select
Selection.ClearContents
With Sheets("Stoer")
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 1) > 1 Then
rngC.Resize(, 4).Copy
Sheets("Bericht").Cells(lngZ, 3).PasteSpecial xlValues
lngZ = lngZ + 1
End If
Next
Application.CutCopyMode = False 'Kopierrahmen deaktivieren
End With
Application.ScreenUpdating = True
End Sub
Nun möchte ich gerne die Spalten 1 bis 4 in verschiedenen Spalten zurückgeben!
z.B. Spalte 1 soll in Spalte 3 zurückgegeben werden, 2 in 4 und 3 in 9 und 4 in 10!
Jetzt bekomme ich ja direkt die Daten in Spalte 1 bis 4 ausgegeben!
Wie mache ich das?
Gruß

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten kopieren
07.11.2012 23:43:05
fcs
Hallo Snewi,
dann muss die Zellen/Zellbereiche je Zeile in mehreren Schritten kopieren.
Gruß
Franz
Sub kopieren_ELO_Stoer()
Dim rngC As Range
Dim lngZ As Long
lngZ = 54
Application.ScreenUpdating = False
Sheets("Bericht").Select
Range("C54:L83").Select
Selection.ClearContents
With Sheets("Stoer")
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 1) > 1 Then
.Range(rngC, rngC.Offset(0, 1)).Copy
Sheets("Bericht").Cells(lngZ, 3).PasteSpecial xlValues
.Range(rngC.Offset(0, 2), rngC.Offset(0, 3)).Copy
Sheets("Bericht").Cells(lngZ, 11).PasteSpecial xlValues
lngZ = lngZ + 1
End If
Next
Application.CutCopyMode = False 'Kopierrahmen deaktivieren
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Daten kopieren
08.11.2012 10:52:10
Snewi
Ein kleines Problem gibt es noch!
Es funktioniert soweit alles gut aber wenn ich die Sub über einen Button anstosse werden die Daten erst beim zweiten Mal Button drücken aktualisiert...mhhh kann das sein?
Was muss ich tun wenn ich die Sub anstossen möchte, wenn sich der Wert in der Zelle K50 bei mir ändert?
Gruß

Rückfrage,....?
08.11.2012 11:12:41
Matze,Matthias
Hallo Snewi,...
ersetze Next ; durch Next rngC
Matze

AW: Rückfrage,....?
08.11.2012 11:43:22
Snewi
Das klappt schonmal :-)
Jetzt würde ich gerne die Sub auslösen, wenn sich der Wert in K50 ändert! wie mache ich das?
Gruß

Hoffe ich hab das richtig gemacht,...
08.11.2012 12:02:28
Matze,Matthias
im VBA Editor unter das Blatt Stoer einbinden
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("K50")) Is Nothing Then
Call kopieren_ELO_Stoer
End If
End Sub
Matze

Anzeige
AW: Hoffe ich hab das richtig gemacht,...
08.11.2012 12:21:10
Snewi
Läuft super :-)
Ich habe hier in der Tabelle schon was:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim RaBereich As Range
Set RaBereich = Range("C3")
If Not Intersect(Range(Target.Address), RaBereich) Is Nothing Then frm_date.Show
Set RaBereich = Nothing
End Sub
könnte man das auch beides zusammenfassen? Oder macht man das nicht?
Gruß

AW: Hoffe ich hab das richtig gemacht,...
08.11.2012 12:28:50
Matze,Matthias
Hallo Snewi,
wenn in dem "RABereich" etwas geändert wird solltest du das Change Ereignis nehmen.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3")) Is Nothing Then frm_date.Show
end if
If Not Intersect(Target, Range("K50")) Is Nothing Then
Call kopieren_ELO_Stoer
End If
End Sub

Anzeige
AW: Daten kopieren
08.11.2012 12:52:28
Snewi
Eine Frage gibt es noch!
Wie kann ich die Werte in zwei verbundenen Zellen zurückgeben?
z.B.

Range(rngC.Offset(0, 2), rngC.Offset(0, 2)).Copy
Sheets("Bericht").Cells(lngZ, 11).PasteSpecial xlValues
11 ist hier aber eine verbundene Zelle aus 11 und 12 weil der Datensatz nicht nur in 11 passt!
gruß

AW: Daten kopieren
08.11.2012 12:58:35
Matze,Matthias
Hallo Snewi,
nur mal so am Rande erwähnt, du änderst als etwas an der Mappe, sodas wir hier ständig von dir gefordert werden, stell doch mal die Mappe ins forum, oder ist die wieder eine von vielen die "geheim" ist.
Interresant ist der Aufbau, damit wir eine Bezug zum ganzen bekommen.
Ich bin jetzt leider Unterwegs, aber auch weiter Foremteilnehmer würden sowas begrüßen.
Matze

Anzeige
AW: Daten kopieren
08.11.2012 13:43:10
Snewi
Hatte Sie eigentlich oben schonmal online gesetzt :-)

Die Datei https://www.herber.de/bbs/user/82527.xlsm wurde aus Datenschutzgründen gelöscht


Gruß

OT: select AW: Daten kopieren
08.11.2012 08:26:04
Klaus
Hallo Snewi
wollten wir nicht auf select's im Code verzichten?
Statt
      Sheets("Bericht").Select
Range("C54:L83").Select
Selection.ClearContents

lieber
      Sheets("Bericht").Range("C54:L83").ClearContents
Grüße,
Klaus M.vdT.

Anzeige
OT: select AW: Daten kopieren
08.11.2012 08:54:25
Snewi
stimmt hatte es auch schon geändert gehabt :-)

Sheets("Bericht").Range("C54:L" & Rows.Count).ClearContents

Gruß und danke für die Erinnerung :-)

rows.count ist hier aber nicht richtig ...
08.11.2012 12:40:00
Klaus
Hi,
rows.count ergibt aber (fast) immer 1048576 (ab xl2007) oder 65653 (bis xl2003). Kannst du ja mal ausprobieren (mit MsgBox rows.count zB).
um die letzte Zelle festzustellen, nimm Cells(Rows.Count,1).end(xlup).Row
Also in deinem Beispiel:
Sheets("Bericht").Range("C54:L" & Sheets("Bericht").Cells(Rows.Count,1).end(xlup).Row).ClearContents
Oder, etwas übersichtlicher

Sub SoUndSo()
Dim lRow as long
lRow = Sheets("Bericht").Cells(Rows.Count,1).end(xlup).Row
Sheets("Bericht").Range("C54:L" & lRow).ClearContents
End Sub

das zweite Beispiel ist zwar länger, hat aber den Vorteil dass du die Variable lRow öfters verwenden kannst.
Grüße,
Klaus M.vdT.

Anzeige
AW: rows.count ist hier aber nicht richtig ...
08.11.2012 12:43:33
Snewi
Du hast recht! Danke!
Es lief trotzdem ziemlich schnell!
Gruß

AW: rows.count ist hier aber nicht richtig ...
08.11.2012 12:45:43
Snewi
Wenn ich das mache kommt der Fehler:
"Kann Teile einer verbundenen Zelle nicht ändern!"
gruß

AW: rows.count ist hier aber nicht richtig ...
08.11.2012 12:59:20
Matze,Matthias
schau dir mal meine Beitrag etwas weiter oben an!

verbundene Zellen ...
08.11.2012 13:46:12
Klaus
Hallo Snewi,
verzichte auf verbundene Zellen. Immer. Auch bei Überschriften. Die machen mehr ärger als sie Nutzen bringen. Zellen verbinden ist noch schlimmer als .select zu nutzen :-)
Du wirst jetzt sagen "ich brauch aber verbundene Zellen" ... die Antwort darauf ist 1) nein, wie hättest du die Tabelle denn aufgebaut wenn Excel diese funktion NICHT hätte? Bau die Tabelle so auf. und 2) Zellen können horizontal "über Markierung zentriert" ausgerichtet werden, ohne verbunden zu sein. Schau mal ins Tabellenformatierungs-Menü. Vertikal geht das nicht, aber wenn eine Tabelle vertikal verbundene Zellen beinhalten möchte, ist der Tabellenaufbau in seiner Grundidee murks.
Grüße,
Klaus M.vdT.

Anzeige
AW: verbundene Zellen ...
08.11.2012 13:53:08
Snewi
Juhu habs gefunden über Auswahl zentrieren, dann kann ich mir ja echt den Scheiss mit den verbundenen Zellen sparen :-)
Super wie immer spitze Klaus :-)
Gruß

Danke für die Rückmeldung! owT
08.11.2012 14:22:31
Klaus
.

"...schlimmer als .select zu nutzen", ...
09.11.2012 02:02:32
Luc:-?
…so'n Quatsch, Klaus;
Select macht ein Pgm nur langsam, VerbundZellen liegen auf einer ganz anderen „Vglsebene“! Da wären permanent ausgeblendete Spalten/Zeilen innerhalb von Tabellen viel schlimmer. Außerdem kann man auch mal über den xlTellerrand hinaus schauen. In anderer KalkSoftware ist das Feature viel universeller organisiert. Nur, weil MS nicht willens ist, an seinem Konzept etwas zu ändern, muss man sich ja nicht auch noch selbst indoktrinieren!
Will jetzt aber keine neue Diskussion dazu lostreten, kannst dich gern im Archiv über die letzte Diskussion zum Thema informieren.
Übrigens, im Interesse einer drucktechnisch modernen und eleganten Tabellengestaltung sind senkrecht verbundene Zellen mitunter unverzichtbar. Warum auch sollte Xl etwas nicht können, was sogar HTML kann?
Nebenbei, beim Einkopieren von HTML-Tabellen in Xl können auch VerbundZellen entstehen. Man muss solcher Realität Rechnung tragen und sie nicht per „Kopf-im-Sand“-Isolationismus zu vermeiden suchen. ;->
Gruß Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige