Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Probleme bei Kopieren und Einfügen
#11
Hallo ich noch mal.

Das von schauan am 16.06.2019 geschriebene Makro ist klasse. Vielen Dank nochmals an dieser Stelle.

Beim testen/anwenden habe ich aber festgestellt, dass zur Perfektion noch zwei Sachen wären, bei denen ich eure Hilfe benötige.
Deutlich aber mein Fehler, hätte das gleich mit ansprechen sollen.

1.) Ist es möglich, die Zellen die ich in der Zeile kopiert haben möchte, mit der Maus auszuwählen.
     Zur Zeit wird die ganze Zeile ausgewählt und kopiert, es kommt aber vor, dass ich nur Teile der Zeile kopiert haben muss.
     
2.) Zur Zeit kann ich nur in das gleiche Tabellenblatt einfügen. Ich müsste auch die Möglichkeit haben die ausgewählte Zeile in ein anderes Tabellenblatt des Arbeitsmappe einzufügen.

Hoffe es gibt hier jemanden der mir helfen kann.

Danke
Antworten Top
#12
Hallöchen,

das mit dem 2. könnte aber schon funktionieren - Du musst nur eine Zielzelle in Spalte A auswählen.

Zum 1. wäre noch die Frage, ob Du dann generell nur markierte Bereiche kopieren willst.

Wenn Du generell nur markierte "Zellen" kopieren willst, wäre noch die Frage, ob die vor Start des Makros selektiert werden sollen oder danach.
Bei den verbundenen Zellen würde auch der komplette Verbund kopiert.

Falls es mal die der komplette Bereich und mal nur Teile davon sein sollen, müsste man eine Fallunterscheidung programmieren, eventuell mit nachfolgender Auswahl von Zellen. Bei Einzelauswahl besteht die Gefahr, dass durch fehlerhafte Auswahl Bereiche aus anderen "Zeilen" kopiert werden, die eigentlich nicht zusammengehören. Das könnte man aber programmtechnisch unterdrücken.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
(07.07.2019, 18:40)schauan schrieb: Hallöchen,

das mit dem 2. könnte aber schon funktionieren - Du musst nur eine Zielzelle in Spalte A auswählen.

Zum 1. wäre noch die Frage, ob Du dann generell nur markierte Bereiche kopieren willst.

Wenn Du generell nur markierte "Zellen" kopieren willst, wäre noch die Frage, ob die vor Start des Makros selektiert werden sollen oder danach.
Bei den verbundenen Zellen würde auch der komplette Verbund kopiert.

Falls es mal die der komplette Bereich und mal nur Teile davon sein sollen, müsste man eine Fallunterscheidung programmieren, eventuell mit nachfolgender Auswahl von Zellen. Bei Einzelauswahl besteht die Gefahr, dass durch fehlerhafte Auswahl Bereiche aus anderen "Zeilen" kopiert werden, die eigentlich nicht zusammengehören. Das könnte man aber programmtechnisch unterdrücken.

Hallo.
Bin erst einmal platt, über deine Hilfsbereitschaft.

Habe das gerade einmal ausprobiert. Wenn ich das Makro aktiviere sagt er mir, ich soll die Zelle mit lfd.Nr auswählen/eingeben. Anschließend die gewünschte Zielzelle auswählen/eingeben. So lange ich mich im gleichen Tabellenblatt befinden macht er es anstandslos. Wähle ich bei der Zielzelle aber die Zelle A in einem anderen Tabellenblatt aus,  aus erscheint das Fenster "Falsche Auswahl"  :22:

Zum ersten Punkt meiner Bitte. So wie es jetzt ist, das ich erst das Makro mittels Button starten muss, kann gerne bleiben. Falls es einfacher wäre, erst die Zeile bzw. die Zellen auszuwählen und dann den Button zu betätigen wäre  es mir genau so recht. 
Der Zellverbund wird immer im ganzen kopiert. Der Zellverbund muss nicht noch einzeln (Amt und oder Mitgliedsnummer ) kopiert werden. Diese Angaben bleiben immer zusammen.

Hoffe das ich jetzt alle Klarheiten beseitigen konnte  :19: :19: :19:

Danke für deine grandiose Hilfsbereitschaft
schadre
Antworten Top
#14
Hallöchen,

für 2) braucht es noch eine kleine Änderung bei der Prüfung auf Spalte A

'Wenn nix in SPalte A gewaehlt, dann Makro verlassen
If Intersect(rngT, rngT.Parent.Columns(1)) Is Nothing Then MsgBox "Falsche Auswahl": Exit Sub

… und noch eine Frage zu 1)
Zitat:Der Zellverbund wird immer im ganzen kopiert.

Du meinst doch, dass Du z.B entweder die Zellen C5:H7 markierst oder B5 oder L5:L7 oder … und dann kopiert haben willst und nicht den kompletten "Verbund" von A bis N?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
(08.07.2019, 20:28)schauan schrieb: Hallöchen,

für 2) braucht es noch eine kleine Änderung bei der Prüfung auf Spalte A

'Wenn nix in SPalte A gewaehlt, dann Makro verlassen
If Intersect(rngT, rngT.Parent.Columns(1)) Is Nothing Then MsgBox "Falsche Auswahl": Exit Sub

… und noch eine Frage zu 1)

Du meinst doch, dass Du z.B entweder die Zellen C5:H7 markierst oder B5 oder L5:L7 oder … und dann kopiert haben willst und nicht den kompletten "Verbund" von A bis N?

Hallöchen.
Perfekt wäre, wenn ich in zB in der Zeile mit der Lfd.Nr 2  ( in meinem Beispiel Frau Stefanie Müller) nur "A5" (lfd. Nr.) bis "D5" (Vorname) auswählen könnte,aber wenn nötig auch A bis C, oder D bis H, aber auch A bis N usw usw. Ich also bei der Auswahl der Zellen flexibel bin.


 Mit "Verbund" meinte ich ,das z.B die Spalte B (in meinem Beispiel Amt/Mitgliedsnummer: Trainer/7654499) immer im ganzen zusammen kopiert werden. Für mich ist das eine Zelle, auch wenn sie wie in meinem Beispiel aus einer "normalen" Zeile und einer verbundenen Zeile besteht.

Sollte es für dich einfacher sein und ich (in meinem Beispiel Amt und Mitgliedsnummer) einzeln kopieren können ist es mir genau so recht.

Hoffe ich konnte es jetzt verdeutlichen.

Für meine 1.Fage hat deine Korrektur 100% funktioniert . Danke Danke

 Gruß schadre
Antworten Top
#16
Hallöchen,

hier ist erst mal eine Teillösung. Der Code entscheidet automatisch, ob alles oder nur ein Bereich zu kopieren ist. Das funktioniert anhand der Auswahl des Quellbereiches mit oder ohne Spalte A.

Ist die lfd. Nr. in Spalte A allein oder mit weiteren Zellen ausgewählt, wird die Zeile kopiert. Fehlt die Spalte A in der Auswahl, wird nur der markierte Bereich kopiert. Als Ziel ist in jedem Fall eine Zelle in Spalte A zu wählen.

Teillösung ist es deshalb, weil Du von den 3 Zeilen eines Bereichs immer die erste Zeile dabei haben musst, damit es im Ziel korrekt ankommt. Im Ziel fülle ich im Moment immer ab der oberen Zeile eines Bereichs aus. Das müsste ich noch anpassen. Wenn Du z.B. nur die Nummer vom CoTrainer kopieren willst und nicht noch das Wort, kommt was durcheinander. Kopierst Du aber Co-Trainer und die Nummer, passt es. Kopierst Du nur Co-Trainer, passt es auch.

Code:
Sub InhalteKopieren()
'Variablendeklarationen
Dim rngS As Range, rngT As Range
'Bei Fehler weiter - tritt bei Abbrechen auf
On Error Resume Next
'Quelle abfragen - bereich mit lfd Nr waehlen!
Set rngS = Application.InputBox(Prompt:="Bitte Zelle mit lfd Nr. oder Zellen zum Kopieren " & _
  "mit der Maus ausw?hlen oder deren Adresse von Hand eingeben.", _
  Title:="Zellauswahl", Type:=8)
'Bei Fehler Makro verlassen
If Err.Number <> 0 Then Exit Sub
'Ziel abfragen - bereich mit lfd Nr waehlen!
Set rngT = Application.InputBox(Prompt:="Bitte die gew?nschte Zielzelle " & _
  "mit der Maus ausw?hlen oder deren Adresse von Hand eingeben.", _
  Title:="Zellauswahl", Type:=8)
'Bei Fehler Makro verlassen
If Err.Number <> 0 Then Exit Sub
'Wenn mix in SPalte A gewaehlt, dann Makro verlassen
If Intersect(rngT, rngT.Parent.Columns(1)) Is Nothing Then MsgBox "Falsche Auswahl": Exit Sub
On Error GoTo errorhandler
'Wenn anderswo als in Spalte A markiert wurde,
If Intersect(rngS, Columns(1)) Is Nothing Then
  'Inhalt kopieren und einfuegen
  rngS.Copy
  rngT.Cells(1, rngS.Column).PasteSpecial Paste:=xlPasteValues
Else
  'Inhalt aus Spalte A kopieren und einfuegen
  rngS.Cells(1, 1).Resize(3, 1).Copy
  rngT.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
  'Inhalt aus Spalte B kopieren und einfuegen
  rngS.Cells(1, 1).Offset(, 1).Copy
  rngT.Cells(1, 1).Offset(, 1).PasteSpecial Paste:=xlPasteValues
  rngS.EntireRow.Cells(2, 2).Resize(2, 1).Copy
  rngT.EntireRow.Cells(2, 2).PasteSpecial Paste:=xlPasteValues
  'Inhalt aus Spalte C:H kopieren und einfuegen
  rngS.Cells(1, 1).Resize(3, 6).Offset(, 2).Copy
  rngT.Cells(1, 1).Offset(, 2).PasteSpecial Paste:=xlPasteValues
  'Inhalt aus Spalte I:K kopieren und einfuegen
  rngS.Cells(1, 1).Resize(3, 3).Offset(, 8).Copy
  rngT.Cells(1, 1).Offset(, 8).PasteSpecial Paste:=xlPasteValues
  'Inhalt aus Spalte L:N kopieren und einfuegen
  rngS.Cells(1, 1).Resize(3, 3).Offset(, 11).Copy
  rngT.Cells(1, 1).Offset(, 11).PasteSpecial Paste:=xlPasteValues
'Ende Wenn anderswo als in Spalte A markiert wurde,
End If
errorhandler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
Application.CutCopyMode = False
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • schadre
Antworten Top
#17
Danke. Das ist die super Lösung
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste