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.

Suchen, Auswählen, Merken, Drucken
#1
Hallo Forum,

Ziel: In einer Tabelle mit insgesamt 14 Tabellenblättern und rund 2.500 Artikeln soll nach Auswahl einer oder Meherer Artikel das ganze angezeigt werden (also nur die ausgewählten Artikel).

Zwischenziel 1: Einfügen einer Suchfunktion (die weder Groß- noch Kleinschreibung beachtet und alle Tabellenblätter durchsucht) (gerne per Suchknopf)

Zwischenziel 2: Wenn ein Artikel ausgesucht wurde gesamte Zeile farblich markieren (Tabelle wird vermutlich bis Spalte M gehen

Zwischenziel 3: Druck der ausgewählten Artikel als PDF (Datei soll an Kunden geschickt werden)

Ich wäre euch wirklich dankbar, wenn mir jemand helfen könnte Smile

Vorab vielen, vielen Dank!

Viele Grüße
Alex
Antworten Top
#2
Hallo Alex,

soll denn dann immer nur die eine Excel-Zeile gedruckt werden?

Also, die Suche findet auf einem Tabellenblatt eine Zeile, diese wird markiert und automatisch als pdf ausgegeben. Dann wird die nächste Zeile gefunden und wieder als pdf ausgedruckt, die nächste Zeile steht vielleicht auf der nächsten Tabelle usw. usf.

Was hast Du denn für eine pdf-Ausgabe? Mit der PDF-Funktion von Excel kannst Du ja nur komplette Blätter speichern. Wenn DU nichts anderes hast, müsste man die Zeile erst auf ein neues Tabellenblatt übertragen Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Schauan,

nicht ganz. Also der Kunde soll die Möglichkeit haben aus diesen ca., 2.500 Artiekln welche auszusuchen und am Ende daraus eine PDF zu kreiern die er mir dann schicken kann. Also nicht pro Zeile ein PDF sonder für alles, was keine "0" im Auswahlfeld hat.

Danke und Gruß
Alex
Antworten Top
#4
Hallo Alex,

also muss dann doch alles auf einem Blatt zusammengefasst werden, oder? Wenn alles auf einem Tabellenblatt stehen würde, dann könnte man die nicht benötigten Daten ausblenden. Aber da es auf mehreren Blättern steht ...
Na, mal sehn, ich bastel nach dem Abendbrot noch was zusammen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hi Schauan,

genau. Entschuldige, da habe ich evtl. nicht aufmerksam genug gelesen Blush

Genau. Also Kunde soll einen Suchbutton haben, in dem er nach dem Artikel suchen kann. Dann hat er die Möglichkeit in der Tabelle anzugeben wie viel er von was braucht. Die Zellen, in denen er etwas einträgt, die brauche ich dann als einzelnes Blatt, schön übersichtlich Smile

Danke schauan, dass du dich noch dran setzt.

Viele Grüß
Alex
Antworten Top
#6
Hallo Alex,

mit diesem Makro kannst Du die Daten auf einem temporären Excelblatt zusammenfassen. Siehe dazu die Kommentare im Code.

Code:
Sub AusgabeZusammenfassen()
'Variablendeklarationen
'Objekte
Dim myWsh As Worksheet, tmpWsh As Worksheet, myRng As Range
'String
Dim strAddress As String, strFind As String
'Integer
Dim iCnt%
'Suchbegriff eingeben. es wird nach 100% Uebereinstimmung gesucht,
'Gross- / Kleinschreibung ist egal
strFind = InputBox("Name des Artikels eingeben:", "Artikelauswahl")
'temporäres Blatt hinzufügen. Beachte: In diesem Beispiel muss das Blatt
'manuell wieder geloescht werden!
Set tmpWsh = Worksheets.Add(before:=Sheets(1))
'Schleife ueber alle Blaetter
For Each myWsh In Worksheets
  'Suchbegriff suchen und dem Bereich zuweisen.
  'Beginnt mit letzter Zelle des Blattes, um Begriff zuerst in A1 zu suchen
  Set myRng = myWsh.Cells.Find(what:=strFind, after:=myWsh.Cells(Rows.Count, 1), _
     lookat:=xlWhole, LookIn:=xlFormulas)
  'Wenn etwas gefunden wurde, dann
  If Not myRng Is Nothing Then
    'Adresse merken
    strAddress = myRng.Address
    'Schleife ueber alle Treffer
    Do
      'Zaehler fuer Zeilennummer auf temporaerem Blatt hochsetzen
      iCnt = iCnt + 1
     'komplette Zeile kopieren
      myWsh.Rows(myRng.Row).Copy tmpWsh.Rows(iCnt)
      'naechsten Eintrag suchen
      Set myRng = myWsh.Cells.FindNext(after:=myRng)
      'Wenn keiner gefunden, dann Do verlassen
      If myRng.Address = strAddress Then Exit Do
    'Ende Schleife ueber alle Treffer
    Loop
  'Ende Wenn etwas gefunden wurde, dann
  End If
'Naechstes Schleife ueber alle Blaetter
Next myWsh
'temporaeres Blatt aktivieren
tmpWsh.Activate
'Meldung ausgeben
MsgBox "Bitte Daten eintragen und Blatt drucken / als pdf speichern"
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hey ho Schauan,

wir nähern uns Smile

Also, wenn ich dein Makro abspiele fragt er mich jetzt jedesmal, nach der Suchbox. Damit kann ich leben wenn er die Artikel finden würde...ich kann die Tabelle so wie sie jetzt ist leider nicht online posten, da sie noch nicht dafür bestimmt ist :(

Hoffe es ist ok für dich, wenn wir es auf diese weise machen?!

Ich versuche dir den Aufbau der Tablle(n) mal zu beschreiben:

A & B = ausgeblendet weil Hilfsdaten

C = Key (muss beim Audruck unbedingt mit angegben werden, danach sucht mein Warenwirtschaftssystem
D = Artikelbeschreibung (das wird mit unter einer der Begriffe sein, nach denen der Kunde sucht (er wird sicherlich auch nach Key suchen wollen)
E = Preis = Startpreis (muss dem Kunden angezeigt werden
F = Kundenpreis. Im ersten Tabellenblatt (heißt Setup) kann der Kunde seinen Rabatt eintragen und dieser wird auf allen Tabellenblättern abgezogen (von E)
G = Zeitraum (Kunde kann hier nur werte von 1 -49 eingeben)
H = Endpreis für Zeitrum (= eine in sich zig fach verschachtelte wenn formel, die sich auf G bezieht
I = benötigte Anzahl (hier kann der Kunde von 1-999 eingtragen)
J = Endpreis mit gewünschter Anzahl (bezieht sich auf I & H (=WENN(ISTFEHLER(I3*H3);"noch nichts zu rechnen";I3*H3))

So. Jetzt wäre es schön, wenn ich diese Tabelle öffene in der 11 Tabellenblätter sind. Mal angenommen ich nehme aus Blatt 1 den 5 Artikel, aus Blatt 2 den 5,6 aus dem 3 Blatt usw. usf. dann soll der Kunde ein "Button" haben auf dem er die Daten auf ein separates Blatt schiebt und mir schicken kann damit ich dann "nur noch" C = KEY kopieren und pasten muss und sehe wie viel er von was wie lange braucht.

Au weia...für mich klingt das total logisch. Bitte lass mich wissen, wenn du etwas besser erklärt haben möchtest. Ansonsten formatiere ich mal ein Blatt unkenntlich um und lade es exemplarisch hoch Smile

Danke schauan! Sehr lieb von dir Big Grin

Gruß
Alex


EDIT: @Schauan: ich hab dir doch eine Mustertabelle hochgeladen. Vielleicht ist es so einfacher Smile
Antworten Top
#8
Hallo ALex,

ich mach für heute erst mal Schluss - muss immer früh vor 5 aufstehen ... Eventuell kannst Du mal einen kleinen Tabellenausschnitt hier posten - mach einfach aus ein paar Einträgen "Pseudodaten"
Morgen Abend bin ich wieder da Wink

Bei den Suchen steht noch die Frage, ob "Ent oder weder" Wink gesucht wird oder kombiniert. Kombiniert wäre dann kompliziert im Vergleich zur Suche nach Key oder Beschreibung.
Wie Du es zuletzt beschreibst, geht es aber gar nicht um eine Suchfunktion. Du oder der Kunde wählt die Artikel manuell aus und schiebt sie dann rüber. Das können dann auch total unterschiedliche sein und nicht alle, die den gleichen Key oder die gleiche Beschreibung haben. Wobei ich annehme, dass der Key eindeutig ist und nicht mehrmals vergeben wird?

Bei den Einträgen auf dem temporären Blatt wäre noch von Interesse, ob es reicht, die Werte zu übernehmen oder auch Formeln. Ich nehme mal an, auch die Formeln. Im Moment kopiert der code alles, also auch die Formeln.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Hi Schauan,

kein Problem. Geh du mal schlafen :) Wenn wir das hier hin bekommen würde ich mich gern erkenntlich zeigen. Mehr dazu dann via PN. Bis morgen Smile und danke!
Antworten Top
#10
Hallo Alex,

mit diesem Makro werden alle Zeilen in die Tabelle2 kopiert, wo in Spalte G ein Wert > 0 steht. Siehe dazu die Kommentare im Makro.

Code:
Sub Makro1()
   'Mit dem Blatt Tabelle1
    With Sheets("Tabelle1")
      'Autofilter in Spalte G setzen
      .Columns("G:G").AutoFilter
      'Spalte G filtern nach Werten > 0, Filter bis zur letzten gefuellten Zeile in Spalte G
      'Es darf in Spalte G also nix unter den Daten stehen.
      .Range("$G$1:$G$" & .Cells(Rows.Count, 7).End(xlUp).Row).AutoFilter Field:=1, Criteria1:=">0"
      'Bereich kopieren und in Tabelle2 einfuegen
      .Rows("1:" & .Cells(Rows.Count, 7).End(xlUp).Row).Copy Sheets("Tabelle2").Range("A2")
      'Autofilter in Spalte G zuruecksetzen
      .Columns("G:G").AutoFilter
    End With
    'Tabelle2 aktivieren
    Sheets("Tabelle2").Activate
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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