Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: markierte Zeile mittels Makro kopieren

markierte Zeile mittels Makro kopieren
14.06.2007 07:09:55
ilka
Hallo,
folgendes möchte ich gern erreichen:
Im beigefügter Datei markiert der Anwender die ersten beiden Felder einer Zeile. Mittels Button soll er dann folgende Aktion ausführen können: Die Zeile, in welcher die Markierung vorgenommen wurde, soll komplett in das Tabellenblatt "Löschungen" kopiert werden, der Eintrag soll sich an die bereits bestehenden Datensätze anschliessen bzw. in die nächste leere Zeile kopiert werden. Im Tabellenblatt, wo die Markierung vorgenommen wurde, sollen die beiden markierten Felder mit "0" überschrieben werden.
https://www.herber.de/bbs/user/43236.xls
Kann mir jemand helfen?
Vielen Dank!

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: markierte Zeile mittels Makro kopieren
14.06.2007 07:38:00
Beverly
Hi Ilka,
kopiere diesen Code in ein allgemeines Modul

Sub uebertragen()
With Worksheets("Löschungen")
Selection.EntireRow.Copy .Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, _
1).End(xlUp).Row, .Rows.Count) + 1, 1)
Selection = 0
End With
End Sub


Erstelle in der Tabelle "Übersicht" eine Schaltfläche aus der Formular-Symbolleiste und weise ihr dieses Makro zu.
________________________________________

Anzeige
AW: markierte Zeile mittels Makro kopieren
14.06.2007 10:36:38
ilka
Hallo Karin,
vielen Dank, hat alles gut funktioniert.
Ich würde gern noch eine Art Sicherheitsabfrage einbauen, so dass nach Betätigen des Buttons "austragen" gefragt wird, ob der markierte Datensatz tatsächlich entfernt werden soll. Desweiteren soll mit dem Übertrag der Zeile im Tabellenblatt "Löschungen" hinter der Spalte Bemerkungen mit Übertrag eines Datensatzes gleichzeitig das Datum des Übertrages abgespeichert werden - geht das?
Zusätzlich habe ich die Aufgabe, über einen weiteren Button die Erstellung eines Sicherungskopie der Datei zu veranlassen, welche dann in einem separaten Ordner x unter dem alten Dateinamen zuzüglich Datum und Uhrzeit abgespeichert werden soll.
https://www.herber.de/bbs/user/43239.xls
Kannst Du mir auch hierbei helfen?
Vielen Dank im voraus.
Ilka

Anzeige
AW: markierte Zeile mittels Makro kopieren
14.06.2007 12:18:00
Beverly
Hi Ilka,
zur 1. Frage

Sub uebertragen()
Dim strAnzeige As String
Dim loLetzte As Long
strAnzeige = MsgBox("Daten wirklich löschen?", vbYesNo)
If strAnzeige = vbYes Then
With Worksheets("Löschungen")
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, _
1).End(xlUp).Row, .Rows.Count) + 1
Selection.EntireRow.Copy .Cells(loLetzte, 1)
Selection = 0
.Cells(loLetzte, 8) = Date
End With
End If
End Sub


zur 2. Frage


Sub sicherheitskopie()
ThisWorkbook.SaveCopyAs "C:\test\" & Mid(ThisWorkbook.Name, 1, Len(ThisWorkbook.Name) - 4) & _
"_" & Date & "_" & Format(Now, "hh_mm_ss") & ".xls"
End Sub


Pfadname bitte anpassen. Uhrzeit wird als 12_20_15 abgespeichert, da ":" im Dateinamen nicht erlaubt ist.
Bis später,
Karin

Anzeige
AW: markierte Zeile mittels Makro kopieren
14.06.2007 23:07:39
Ano
Liebe Karin,
herzlichen Dank, es funktioniert !!
Gruß
Ilka
PS: Inzwischen habe ich auch gemerkt, dass man die Folgebeiträge nicht als neue Frage ins Forum stellt....
Sorry
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Markierte Zeile mittels Makro kopieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Datei, in der Du die Zeilen kopieren möchtest.
  2. Markiere die ersten beiden Felder einer Zeile, die Du kopieren möchtest.
  3. Füge den VBA-Code ein:
    • Drücke ALT + F11, um den Visual Basic-Editor zu öffnen.
    • Wähle Einfügen > Modul, um ein neues Modul zu erstellen.
    • Kopiere den folgenden Code in das Modul:
Sub uebertragen()
    Dim strAnzeige As String
    Dim loLetzte As Long
    strAnzeige = MsgBox("Daten wirklich löschen?", vbYesNo)
    If strAnzeige = vbYes Then
        With Worksheets("Löschungen")
            loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, _
            1).End(xlUp).Row, .Rows.Count) + 1
            Selection.EntireRow.Copy .Cells(loLetzte, 1)
            Selection = 0
            .Cells(loLetzte, 8) = Date
        End With
    End If
End Sub
  1. Erstelle eine Schaltfläche:

    • Gehe zurück zu Excel und wechsle zur Registerkarte Entwicklertools.
    • Klicke auf Einfügen und wähle eine Schaltfläche aus der Formular-Symbolleiste.
    • Ziehe die Schaltfläche auf das Arbeitsblatt und weise ihr das Makro uebertragen zu.
  2. Teste die Funktion:

    • Klicke auf die Schaltfläche, um die markierte Zeile zu kopieren und die beiden Felder auf 0 zu setzen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass Du das Makro korrekt zugewiesen hast und die Makros in Excel aktiviert sind.
  • Fehler: Die Zeile wird nicht in das Tabellenblatt „Löschungen“ kopiert.

    • Lösung: Überprüfe, ob das Arbeitsblatt „Löschungen“ existiert und keine Schreibschutz-Einstellungen hat.

Alternative Methoden

Eine Alternative zur Verwendung eines Makros wäre, die Daten manuell zu kopieren. Markiere die Zeile, drücke STRG + C, wechsle zum Tabellenblatt „Löschungen“ und drücke STRG + V. Dies ist jedoch weniger effizient, besonders bei großen Datenmengen.


Praktische Beispiele

  • Beispiel 1: Du hast eine Liste von Teilnehmern und möchtest die markierte Zeile in ein Archivblatt verschieben, um die Übersichtlichkeit zu erhöhen.
  • Beispiel 2: Bei der Verwaltung von Inventar kannst Du die markierte Zeile, die einen Artikel repräsentiert, in das „Löschungen“-Blatt kopieren, wenn dieser nicht mehr verfügbar ist.

Tipps für Profis

  • Füge eine Fehlerbehandlung in Deinen VBA-Code ein, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben reibungslos funktioniert. Beispiel:
On Error Resume Next
  • Nutze Schleifen und Bedingungen, um komplexere Aufgaben zu automatisieren, z.B. das Kopieren mehrerer Zeilen gleichzeitig.

FAQ: Häufige Fragen

1. Frage
Kann ich den Pfad für die Sicherungskopie ändern?
Antwort: Ja, passe den Pfad in der Funktion sicherheitskopie() an, um die Sicherungskopie an einem anderen Ort zu speichern.

2. Frage
Wie kann ich das Datum im „Löschungen“-Blatt formatieren?
Antwort: Du kannst die Zelle formatieren, indem Du den folgenden Code zur Formatierung hinzufügst:

.Cells(loLetzte, 8).NumberFormat = "dd.mm.yyyy"

3. Frage
Gibt es eine Möglichkeit, mehrere Zeilen gleichzeitig zu kopieren?
Antwort: Ja, Du kannst die Auswahl anpassen, bevor Du das Makro ausführst, indem Du die gesamte Zeile oder mehrere Zeilen markierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige