Makro mit Excel erstellen

VikaS

Cadet 2nd Year
Registriert
Okt. 2014
Beiträge
16
Hallo,
ich bräuchte Hilfe beim Makro erstellen. Und zwar habe ich eine Excel-Datei. Diese hat 2 Tabellenblätter. Auf dem ersten Blatt sind alle Lieferanten mit den dazugehörigen Daten gelistet (zeilenweise). Auf dem zweiten Blatt findet man eine gesamte Übersicht (mit allen Daten aus dem ersten Blatt, sprich einfach nur eine vorgefertigte Tabelle)über den jeweiligen Lieferanten. Das Makro soll sich auf dem ersten Blatt befinden. So die Aufgabe des Makros soll folgende sein: Wenn man eine beliebige Zeile (aus dem ersten Blatt) bzw. einen Lieferanten auswählt, sprich eine Zeile markiert und dann das Makro betätigt, sollen auf dem zweiten Blatt diese Daten in der Übersicht erscheinen.

Ich hoffe ich habe mich verständlich ausgedrückt.
 
VikaS schrieb:
... sollen auf dem zweiten Blatt diese Daten in der Übersicht erscheinen.

Typischer Fall für eine Matrix und sverweis.

Gruß

nicknackman1
 
kann man den sverweis in ein makro einbauen? muss nämlich ein makro sein, bzw eine Schaltfläche.
 
Hallo, mit dem Befehl SVERWEIS könntest du dir die Daten ja ganz einfach aufs nächste Blatt holen.
Dazu einfach eine laufende Nummer für jede Zeile vergeben.
In einem fixen Feld die gewünschte Nummer eingeben. Dieses Feld ist das Suchkriterium für den SVERWEIS auf dem nächsten Blatt.
Ein Makro ist nicht erforderlich.

Ich weiß nicht, ob das die idealste Lösung ist, wir verwenden sie allerdings so für das Befüllen von Formularen.
 
Das Problem ist aber, dass da mal ein Makro war. Die Datei war aber so alt, dass es mit dem neuen Excel nicht mehr ging. Und jetzt soll ich dieses Makro sozusagen wiederherstellen.
Hab dabei an VBA gedacht, aber welche Schaltfläche und welche Befehle ich da nehmen soll weiss ich leider nicht.
 
Du kannst eventuell ein Makro erstellen, das die Lieferantennummer in eine Zelle schreibt, die dann als Quelle für den SVERWEIS auf der zweiten Seite dient...
Aber wieso nicht einfach selbst die Nummer eingeben? Das geht doch viel schneller als die entsprechende Zeile zu suchen und dann vielleicht ganz rechts auf einen Button zu klicken.
Du kannst die Zelle für die Nummer ja auf A1 setzen und dann die oberste und die linke Zeile fixieren.

Nur so eine Frage, was geschieht dann mit den Daten, wenn Sie auf das zweite Blatt geschrieben werden?
 
Wenn aus der Lieferanten-Seite ein Lieferant ausgesucht wird und diese Daten dann auf dem Stammdaten Blatt landen, hat man eine schöne Übersicht. Da ist eine Tabelle und die zeigt alle Daten, die auf dem ersten Blatt in einer Zeile stehen, dann schön übersichtlich auf einem A4 Blatt.

Mir ist gerade noch aufgefallen, dass auf der ersten Seite ganz oben eine Zeile ist. Wenn man in diese Zeile den kompletten Datensatz vom Lieferanten rein kopiert, erscheint dieser auf der zweiten Seiten. Das heißt, die zweite Seite ist mit der ersten Zeile vom ersten Blatt verknüpft.
 
Zuletzt bearbeitet:
Also wenn es nur ums Anzeigen und dann eventuell ums Ausdrucken geht, kann man das am besten mit dem SVERWEIS lösen.
Man braucht auch keinen Button für jeden Lieferanten, sondern einfach nur eine Nummer (am einfachsten die Lieferantennummer) einzugeben und schon hat man alle Daten schön aufgeschlüsselt.
Kannst mir ja das Dokument schicken, dann richte ich es dir ein.
 
Ich bräuchte aber ein Makro, das ist ja das Problem. Und das mit dem Schicken, ist schwierig, du weißt ja Datenschutz und so.
 
Dann poste doch den Code - mit Alt + F11 öffnest du den VBA Editor. Dann können wir diesen anpassen. Du solltest dann noch die Struktur deiner Tabelle beschreiben - oder einfach diese in ein Dummy-File nachbauen, welches du dann hochlädst. Die Daten selbst brauchen wir ja nicht.

ok?
 
VikaS, ich habe dir gerade eine Nachricht geschrieben ..

_killy_ schrieb:
einfach diese in ein Dummy-File nachbauen, welches du dann hochlädst. Die Daten selbst brauchen wir ja nicht.

.. mit ziemlich genau dem selben Inhalt ;-)
 
excel.jpg

ich kenne mich hier mit den ganzen funktionen nicht aus, also mach ich das so, vllt reicht es aus.
ich habe eine tabelle erstellt, die im prinzip wie das original aussieht, nur ohne daten. die zeilen 3-6 stellen die einzelnen lieferanten dar. die erste zeile ist mit absicht leer, diese ist nämlich mit dem anderen Tabellenblatt verknüpft. daher reicht es aus wenn ihr/du weisst wie die lieferanten tabelle aussieht.

das makro soll folgendes erfüllen: wenn man eine beliebige zeile zwischen 3 und 6 markiert (bzw. an der seite anklickt, so das die gesamte zeile markiert ist) soll diese in die erste zeile kopiert werden. weiter braucht man ja nichts machen,da ja die erste zeile sowieso mit dem anderen tabellenblatt verknüpft ist und den rest von alleine macht.
 
Dafür brauchst du das SelectionChange-Event.

Unter 2003 funktioniert
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Columns.Count = 256 And Target.Row <> 1 Then
    Selection.Copy
    Rows(1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
 End If
 
End Sub

entsprechend sollte es dann ab 2010 mit
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Columns.Count = 16384 And Target.Row <> 1 Then
    Selection.Copy
    Rows(1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
 End If
 
End Sub
klappen, hab das aber nicht getestet.
 
ich find leider SelectionChange-Event nicht, kann man das auch vllt mit nem Private Sub CommandButton1_Click() machen?
 
Klar, wenn du jedesmal zum Kopieren auf den Button drücken willst ;)

Der Code gehört schlicht in ein Tabellenblatt im VBA-Editor, wenn du einen Makro mit diesem Namen hast, dann klappt das auch.
Du kannst im VBA-Editor mit geöffnetem Tabellenblatt auch oben links in dem Reiter Worksheet auswählen und dann rechts die verschiedenen Events, die es dazu gibt.

Aber normalerweise reicht es schlicht, den Code in ein Tabellenblatt einzufügen.
 
Reichen dir die Antworten und die Mühe der Helfer hie nicht, dass du im Nachbarforum wieder bei Null anfängst?
Crossposting (ohne Verweis darauf) ist Mist!
 
@ GMG-CC
sorry, kenn mich nicht mit dem Forum aus, dachte nur wenn ich in mehreren Foren die Frage stelle, werden mehr Leute angesprochen. wusste auch nicht, dass sie irgendwie mit einander verknüpft sind! wenn ich wüsste wie mans löschen kann (den Beitrag) würde ich es machen.

@simpsonsfan
ich muss ja jedes mal auf den button drücken, deswegen solls ein makro werden. eine bestimmte zeile soll markiert werden und mit betätigen des makros in die obere zeile gelangen.
 
Ich dachte, es soll automatisch kopiert werden, wenn eine komplette Zeile ausgewählt wird. Dann schiebst du es halt in einen Button. Und statt Target nimmst du halt gleich Selection.

Wobei ich ja nicht weiß, ob das denn überhaupt noch so viel schneller als manuelles Copy/Paste ist.
Ergänzung ()

PS: Ein guter Startpunkt für so einen simplen Makro ist übrigens der Makrorekorder, einfach mal anwerfen und schauen, was rauskommt. Hinterher muss man das dann natürlich noch optimieren.
Und ich hab's mittlerweile auch unter 2010 getestet, das passt so.
 
@ VikaS:
Das mit dem Crossposting gilt eigentlich für alle Foren, mehr oder weniger rigide in der Handhabung.

Ja, du sprichst so mehrere Leute an. Und wenn sich jetzt jemand im Nachbarforum richtig viel Mühe macht, dein Problem zu lösen, dann hat er für den Papierkorb gearbeitet. Denn du hast ja dein Problem gelöst, wie du hierüber schreibst. Kein Helfer ist in allen Foren unterwegs, aber alle Helfer arbeiten unentgeltlich und wollen irgendwo auch eine Wertschätzung erleben ... Darum wäre als mindestes ein Hinweis auf das andere Forum mehr als fair. Und natürlich die Beachtung der Regeln eines jeden einzelnen Forums.
 
Zurück
Oben