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.

VBA - Neues Sheet erzeugen
#31
Hi Sascha,

(03.11.2015, 07:55)alti89 schrieb: - Neues Sheet erzeugen (Test11) - mit dieser Formatierung - und Artikelnummer als Name übernehmen.
 ich würde das auch gerne als Userform realisieren weis ich leider nicht wie ich sowas überhaupt anfangen soll  :22:

- Bei wiederholten klick auf (B) V-MSBD-696143) landet man wieder in der Tabelle (Tabellen wären am besten wenn die auf " hide" wären)

Ich verstehe immer noch nicht, warum dazu 180 einzelne Sheets erzeugt werden müssen.
Ich habe den Eindruck, daß die Artikelnummer nicht eineindeutig ist, z.B. für die Artikelnummer 36-ML3500 MK8-STK gibt es 16 verschiedene Gerätenummern. Sollen diese 16 alle in einem einzigen "Test11" Sheet stehen (Fall 1) oder jede ein einzelnes Sheet (Fall 2) haben? Sind es 50 Zeilen pro Artikel oder pro Gerät?


Fall 1: Dann stehen die Daten für diese 16 Geräte alle in einem Sheet. Ist das übersichtlich? Wie unterscheidest Du da?
Fall 2: Diese 50 Zeilen kannst Du dann auch für alle 180 Geräte in einem einzigen Sammelsheet chronologisch untereinanderschreiben und später dann auf die Artikel/Geräte filtern.
Dazu in beiden Listen ("Demogeräte Pool" sowie "Sammelsheet") zusätzlich eine neue Spalte A einfügen und dort für jedes Gerät eine eineindeutige ID schreiben. Beim Klick auf die ID (in "Demogeräte Pool") per VBA das Sammelsheet in den Vordergrund holen und dort die Liste auf diese ID filtern.
Antworten Top
#32
36-ML3500 MK8-STK das ist ein Sonderartikel, der wird im System leider nicht seriennummern abhängig geführt.

. warum ich für jede Art eine einzelnes Sheet will, weil ich dort die nachvollziehbarkeit gewährleisten muss Z.B

Gerät MSC/B-SES-90001559

über Auftrag 10483905 am xx - xx bei Kunde xxxxx
über Auftrag 10483906 am xx - xx bei Kunde xxxxx
über Auftrag 10483925 am xx - xx bei Kunde xxxxx
über Auftrag 10483949 am xx - xx bei Kunde xxxxx
über Auftrag 10483978 am xx - xx bei Kunde xxxxx

so fühlt sie die neu anlegte Tabelle relativ schnell da die Geräte sehr oft "in" und "out" sind
deshalb die Idee mit dem Doppellick - Neue Tablle mit namen der Art. Nr. - Zum Eintragen der Werte.
und ich bräuchte so eine Historie für jedes Gerät.

deshalb der Aufwand
Antworten Top
#33
Hi,

(03.11.2015, 09:34)alti89 schrieb: so fühlt sie die neu anlegte Tabelle  relativ schnell da die Geräte sehr oft "in" und "out" sind
deshalb die Idee mit dem Doppellick - Neue Tablle mit namen der Art. Nr. - Zum Eintragen der Werte.
und ich bräuchte so eine Historie für jedes Gerät.

Nachvollziehbarkeit hast Du auch bei Filterung.

Excel hat 1.048.576 Zeilen das ergibt pro Gerät ~5.825 Zeilen Historie.

Sheet1
ABCDEF
1Device Historie
2
3ArtikelSLZeitraumKundeOrtBemerkung
4MSC/B-SES-9000155910483905xx - xxxxxxx
5MSC/B-SES-9000155910483906xx - xxxxxxx
6MSC/B-SES-9000155910483925xx - xxxxxxx
7MSC/B-SES-9000155910483949xx - xxxxxxx
8MSC/B-SES-9000155910483978xx - xxxxxxx
9MSC/B-SES-9000517010483979xx - xxaaaaa
10MSBD-SES-9000307210483980xx - xxaaaaa
11V-MSB-SES-9000531910483981xx - xxbbbbb
12V-MSBD-69657610483982xx - xxccccc
13MSBD-SES-9000473510483983xx - xxddddd
14MSBD-SES-9000599810483984xx - xxeeeee
15V-MSBD-69614310483985xx - xxfffff
16

 verbundene Zellen
B1:F2
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.08 einschl. 64 Bit



Diese Liste gefiltert nach Artikel und Du hast die Historie nur für diesen Artikel, die Du ausdrucken oder sonstwas damit machen kannst. Das ist weniger aufwendig und schneller und die Datei ist kleiner, als bei 180 Tabellen in einer Datei.
Antworten Top
#34
oh das gefällt mir sehr gut muss ich sagen :100: 

wie man sieht excel doch noch sehr unerfahren...

- ok und wie mach ich das wenn ich auf die Art. Nr. Doppelklicke in diese Liste komme ?
- ist sowas in userform realisierbar die sich direkt bei Doppellklick auf in eine Zelle bei B öffnet und so aufgebaut ist ?


 verbundene Zellen
B1:F2


was genau meinst du damit ?

vielen Dank schonmal Gruß
Sascha
Antworten Top
#35
Hi Sascha,

(03.11.2015, 10:22)alti89 schrieb: - ok und wie mach ich das wenn ich auf die Art. Nr. Doppelklicke in diese Liste komme ?
- ist sowas in userform realisierbar die sich direkt bei Doppellklick auf in eine Zelle bei B öffnet und so aufgebaut ist ?


verbundene Zellen
B1:F2

was genau meinst du damit ?

da kannst Du jetzt etwas selber machen und was dabei lernen:
Du startest die Makro-Aufzeichnung und machst die erste Aktion: klicken auf den Link in der Pool-Liste, dann wechselst Du auf die Sammelliste und klickst die Filterung für den richtigen Wert, dann Aufzeichnung beenden und das Makro hier posten, dann können wir es gemeinsam verkürzen und verallgemeinern.

verbundene Zellen:
Das bedeutet, daß Du die Zellen B1 bis F2 miteinander verbunden hast in Deiner Test11. Verbundene Zellen sind nicht so gut, eine Ausrichtung mittig über die Tabelle kann auch einfacher erreicht werden.
Antworten Top
#36
okay,

Feld ( Artikelnummer ) angeklickt, in Historie gewechsel und nach der Art. Nr. Gefilter
ergab folgendes:


Code:
Sub Historie()
'
' Historie Macro
'

'
   Range("B3").Select
   ActiveCell.FormulaR1C1 = "MSC/B-SES-90001559"
   Sheets("Historie").Select
   ActiveWindow.SmallScroll Down:=-21
   ActiveSheet.Range("$A$3:$E$4").AutoFilter Field:=1
   Range("A4").Select
   ActiveCell.FormulaR1C1 = "MSC/B-SES-90001559"
 
End Sub


wenn ich das Marco Starte springt er Automatisch in dieses Sheet.
Antworten Top
#37
Hi,

(03.11.2015, 14:59)alti89 schrieb: wenn ich das Marco Starte springt er Automatisch in dieses Sheet.

teste mal dieses Makro:
Code:
Option Explicit

Sub Historie()
  '
  ' Historie Makro
  '
  Dim strArtikel As String
  Dim loLetzteA As Long
  '
  strArtikel = ActiveCell.Value
  With Sheets("Sheet1")
     .Activate
     loLetzteA = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)   'letzte belegte Zeile in Spalte A (1)
     .Range("$A$3:$F" & loLetzteA).AutoFilter Field:=1                                            'Filter zurücksetzen
     .Range("$A$3:$F" & loLetzteA).AutoFilter Field:=1, Criteria1:=strArtikel             'Filter setzen
  End With
End Sub


Hier die Beispieldatei:

.xlsm   DemoTest.xlsm (Größe: 110,32 KB / Downloads: 3)
Zelle mit zu suchender Artikelnummer auswählen, Button drücken, Fertig!
oder Doppelklick in zu suchende Artikelnummer, Fertig!

Jetzt benötigst Du nur noch die Userform (Eingabemaske), mit der Du neue Daten an Sheet1 anhängen kannst.
Antworten Top
#38
:18:  das ist ja fast das was ich suche Heart 

ich versteh das mit dem Rekorden nur noch nicht ganz.
wenn ich jezz auf macro Rekord gehe und folgendes tue.

wähle einen Artikel der noch nicht in der Historie ist
Klicke auf den Historie Anzeigen button

.. so und jezz wie sag ich Excel nimm diese Artikel , kopier mir den in das Sheet1, und Filter danach  Huh
Antworten Top
#39
Hi,

(03.11.2015, 16:13)alti89 schrieb: wähle einen Artikel der noch nicht in der Historie ist
Klicke auf den Historie Anzeigen button

.. so und jezz wie sag ich Excel nimm diese Artikel , kopier mir den in das Sheet1, und Filter danach  Huh

wenn der noch nicht in der Historie ist, kann da ja noch nichts angezeigt werden und ein Filtern hat wenig Sinn.

Hier mal mit Eingabemaske:
.xlsm   DemoTest - mit Userform.xlsm (Größe: 118,23 KB / Downloads: 3)
Du könntest in dem Fall, daß der Artikel noch nicht in der Historie ist, ebenfalls die Eingabemaske aufrufen (das ist noch nicht eingebaut).
Antworten Top
#40
Hi,

(03.11.2015, 16:27)Rabe schrieb: Du könntest in dem Fall, daß der Artikel noch nicht in der Historie ist, ebenfalls die Eingabemaske aufrufen (das ist noch nicht eingebaut).

ersetze mal das Makro Historie durch dieses:
Code:
Sub Historie()
  '
  ' Historie Makro
  '
  Dim strArtikel As String
  Dim loLetzteA As Long
  Dim rng As Range
  '
  strArtikel = ActiveCell.Value
 
  Set rng = Worksheets("Sheet1").Range("A:A").Find(strArtikel)
  If rng Is Nothing Then
     Userform1.Show
  Else
     With Sheets("Sheet1")
        .Activate
        loLetzteA = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)   'letzte belegte Zeile in Spalte A (1)
        .Range("$A$3:$F" & loLetzteA).AutoFilter Field:=1                          'Filter zurücksetzen
        .Range("$A$3:$F" & loLetzteA).AutoFilter Field:=1, Criteria1:=strArtikel   'Filter setzen
     End With
  End If
End Sub


@all:
wie kann ich der Userform den Wert von strArtikel als Wert für Textbox1 übergeben?
Antworten Top


Gehe zu:


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