Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2007] Eingabeformular per Makro innerhalb des Dokuments kopieren
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 12:56 Nach oben

Hallo,

ich habe ein Problem... Smile

Ich habe ein Formular, aber ganz simpel, also einfach z.B. Art. Nr., Stückzahl usw.. Das ist z.B. 5*5 Zellen groß. Dieses Formular soll für jede neue Eintragung neu angelegt werden, aber innerhalb der Tabelle. Sprich, einfach copy die 5*5 Zellen und direkt darunter einfügen.
Von Hand absolut simpel, das Problem ist aber, dass ich das ganze gerne - benutzerfreundlich - per Makro erledigen lassen würde.

Ich habe mich daran versucht ein Objekt (Form) einzufügen neben dem Formular, dieses mit einem Makro zu belegen welches alles (samt Objekt) nach unten kopiert und das Objekt (Form) wiederum mit dem Makro belegt. Das ganze geht - wenn überhaupt - 3-4 mal ohne Probleme, aber dann kommen Fehlermeldungen.

Hat da zufällig jemand eine Idee, wie sich sowas "leicht" umsetzen lässt, so dass es funktioniert?

Wäre toll Smile

Viele Grüße
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 13:06 Nach oben

Hallo!

Vielleicht geht das hier in die richtige Richtung.


jep.xls
 Beschreibung:

Download
 Dateiname:  jep.xls
 Dateigröße:  24 KB
 Heruntergeladen:  17 mal


_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 13:39 Nach oben

Nicht nur vielleicht.
Exakt (!) das, was ich bräuchte.

Könntest Du mir bitte erklären, wie ich da den VBA-Text (ich nehme mal an, darin wird es geändert) ändern muss, damit ich es auf beliebige Felder anwenden kann? Bzw. wie ich es in meine Excel-Mappe einfüge.
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 13:47 Nach oben

Hallo!
Code:
Set Ende = Range("C65536").End(xlUp)

Liefert die letzte beschriebene Zelle in Spalte C. In meinem Beispiel also C8.
Code:
Ende.Offset(-4, 4)

Verschiebt diese Zelle um 4 Zeilen nach oben und um 4 Spalten nach rechts. Im Beispiel also G4.
Code:
Range(Ende, Ende.Offset(-4, 4))

Liefert den Bereich zwischen "Ende" und "Ende.Offset(-4, 4)", also C4:G8.
Code:
.Copy Ende.Offset(3, 0)

Kopiert diesen Bereich. Erste Zelle des Zielbereichs ist C8 um drei Zeilen nach unten verschoben, also C11.

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 14:40 Nach oben

Danke soweit. Ich versteh den ersten Ausdruck nicht, wie man da auf C8 kommt.

Meine Auswahl wäre beginnend bei A12-R31, dann erste Kopie A32-R51 usw.


Folglich:

Ende.offset(-18, 17)
Range(Ende, Ende.Offset(-18, 17)
Copy Ende.offset(1, 0)

Abgesehen vom nicht-vorhandenen ersten Ausdruck - stimmt das so?
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 14:45 Nach oben

Hallo!

Range("C65536").End(xlUp)
sucht das Ende des Bereichs (End), indem von C65536 nach oben (xlUp) gesucht wird.

Wenn ich mich nicht täusche, dann müsste es bei dir .Offset(-19, 18) heißen, aber vielleicht habe ich mich auch verzählt.

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 14:48 Nach oben

Ahh okey.
Mhh, ansich funktioniert es. Dummerweise aber wird nur die letzte Spalte kopiert.
Weißt Du was ich falsch mache?
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 14:52 Nach oben

Zeig mal den ganzen Code!
Meine Kristallkugel ist gerade in Reparatur...
Image

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 14:56 Nach oben

Oh, sorry.

Hier der gesamte Code:

Option Explicit

Private Sub CommandButton1_Click()
Dim Ende As Range
Set Ende = Range("R65536").End(xlUp)
Range(Ende, Ende.Offset(-19, 18)).Copy Ende.Offset(1, 0)
End Sub
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 15:03 Nach oben

Hallo!

Du lässt die letzte Zelle in Spalte R suchen!
Entweder änderst du also "R65536" in "A65536", oder du änderst ".Offset(-19, 18)" in ".Offset(-19, -18)".

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 15:21 Nach oben

Genial. Du bist der Excel-König Smile

Allerdings bräuchte ich noch eine Ergänzung :/
Wenn ich das Formular kopiere, dann ist dies eine Kopie vom Letzten und somit schon ausgefüllt. Das ist etwas ungünstig.

Es gibt doch bestimmt, die Möglichkeit den Inhalt bestimmter Felder zu löschen, oder?

Ist auch meine letzte Frage, versprochen Wink.
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 15:29 Nach oben

Hallo!

Zellinhalte löscht du z.B. mit
Range("A1").ClearContents

In deinem Fall musst du die gewünschten Zellen (oder die Bereiche) entsprechend mit Ende.Offset(...).ClearContents ansteuern.

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 15:43 Nach oben

Das klappt soweit einigermaßen, das Problem ist nur, dass es den Inhalt des vorigen Formulars löscht. Ziel wäre aber, dass das kopierte Formular "leer" ist.
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5570

BeitragVerfasst am: 13.03.2008, 15:48 Nach oben

Image

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
jep
Newbie
Newbie


Anmeldedatum: 15.01.2008
Beiträge: 21

BeitragVerfasst am: 13.03.2008, 15:59 Nach oben

Ach... natürlich.

Option Explicit

Private Sub CommandButton1_Click()
Dim Ende As Range
Set Ende = Range("A65536").End(xlUp)
Range(Ende, Ende.Offset(-19, 18)).Copy Ende.Offset(1, 0)
Ende.Offset(-5, 8).ClearContents
End Sub

Private Sub erwe_Click()

End Sub
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Makro gesucht Zeile kopieren und in j... philipp.geyer Microsoft Excel Hilfe 4 05.09.2008, 15:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Zeile kopieren und darunter einfügen magb Microsoft Excel Hilfe 4 03.09.2008, 16:34 Letzten Beitrag anzeigen
Keine neuen Beiträge Makro das email loescht stom Microsoft Outlook Hilfe 0 03.09.2008, 13:20 Letzten Beitrag anzeigen
Keine neuen Beiträge Excel spielt verrückt, Makro funktion... Frederic Microsoft Excel Hilfe 3 02.09.2008, 12:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Bei Veränderung in Eingabemaske Makro... trottlbua Microsoft Excel Hilfe 2 02.09.2008, 10:15 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de