Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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 :-)

Vorab vielen, vielen Dank!

Viele Grüße
Alex
to 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 :-(
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to 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
to 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-2016)
to 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 :-)

Danke schauan, dass du dich noch dran setzt.

Viele Grüß
Alex
to 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-2016)
to top
#7
Hey ho Schauan,

wir nähern uns :-)

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 Sad

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 :-)

Danke schauan! Sehr lieb von dir :-D

Gruß
Alex


EDIT: @Schauan: ich hab dir doch eine Mustertabelle hochgeladen. Vielleicht ist es so einfacher :-)
to 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 ;-)

Bei den Suchen steht noch die Frage, ob "Ent oder weder" ;-) 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-2016)
to top
#9
Hi Schauan,

kein Problem. Geh du mal schlafen Smile Wenn wir das hier hin bekommen würde ich mich gern erkenntlich zeigen. Mehr dazu dann via PN. Bis morgen :-) und danke!
to 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-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zeilen aus einer Tabelle per Zufall auswählen und markieren Jordan 4 97 14.11.2016, 19:46
Letzter Beitrag: Jordan
  VBA - In Excel Outlook-Kategorien auswählen paulalbert 4 155 08.10.2016, 07:30
Letzter Beitrag: schauan
  Tabelle oder Bereich über "Name" auswählen und anzeigen lassen Bernilli 7 202 30.09.2016, 12:17
Letzter Beitrag: Ego
  VBA: Grafik einfügen und Makro zuweisen, Drucken und PDF-Erstellung andifreak 1 99 25.09.2016, 16:06
Letzter Beitrag: schauan
  Letzte Leere Zelle Auswählen und Wert eintragen (VBA) e2Ki 7 341 14.09.2016, 09:49
Letzter Beitrag: e2Ki
  Tabs der Tabellenblätter automatisch auswählen Hansi2009 2 180 28.08.2016, 10:07
Letzter Beitrag: Hansi2009
  Ordner auswählen & eintragen in Makro mittels VBA tobisw 15 905 05.08.2016, 18:59
Letzter Beitrag: tobisw
  Vba - passende Zellen auswählen sarkami 4 195 28.07.2016, 17:59
Letzter Beitrag: RPP63
  Gefilterte Daten drucken Geri 10 742 26.07.2016, 16:51
Letzter Beitrag: Käpt'n Blaubär
  Fenster Position merken? mikele gross 1 233 04.07.2016, 08:22
Letzter Beitrag: schauan

Gehe zu:


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