Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA Excel Filter mit vor Definiertem Freien Platz

Frage Entwicklung VB for Applications

Mitglied: chaos2go

chaos2go (Level 1) - Jetzt verbinden

16.01.2015, aktualisiert 19.01.2015, 1187 Aufrufe, 14 Kommentare

Hey ihr ,


unzwar habe ich einen Excel Report , für den ich ein VBA script habe , was mir meine direkten sachen Filtert.
Das Filtern funktioniert auch so ohne Problem ,es werden meine Excel Sheets erstellt alles Gut .

Jetzt kommt es zu der Frage

Zur Info : Es sind Status Einträge

Ich erstelle ein Dictenory mit allen Einträgen in meinem Fall ist es [ - A bis ZY ] .

Jetzt sollen alle einträge in dem neuen Sheet nicht am Anfang sondern paar Spalten weiter unten eingefügt werden , da oben für jeden Status ein Seperater Text Spezifisch für den Status mit eingefügt werden soll .


Also wenn er mir z.B. den Sheet A erstellt Diesen xyz Text mit einfügen und darunter weiter machen mit den Einträgen .

Wenn er jetzt zum erstellen von Sheet B kommt Diesen Text mit Blabla einfügen .


Aufbau des Excel Files

Geht von A - L


Einträge sind

von links nach rechts ...


Beschreibung , Bezeichner ,Betreiberbezeichner , Wert, Einheit ,Objektbeschreibung , Zustand , Typ ;L/S, Parameter, Min, Max

Ich Filter nach Zustand und erstelle für jede Zustands möglichkeit ein neues Sheet wo alle Einträge mit dem Zustand Hinzugefügt werden , das Funktioniert Ohne Probleme .


Es gibt gesamt 14 Zustände


jetzt soll für Jeden Zustand ein Seperater Text am Anfang mit eingefügt werden und darunter die Einträge


Beispiel :


Zustand 1 Es muss das und das Gemacht werden

Datensatz


Datensatz
.....


alle Einträge mit mit Zustand 1 abgearbeitet , kommt Zustand 2


wieder oben der Eintrag

Zustand 2 Hier muss es anders Gemacht werden


Datensatz

Datensatz

...


usw ...


hoffe man versteht es nu besser , es ist immer blöd was zu erklären was man selber nicht ganz versteht ...


code sieht wie folgt aus (beiu dem Wurde mir hier auch geholfen )

01.
 
02.
Sub CopyUniqueToSheets() 
03.
 
04.
     'Alle Leeren Einträge mit etwas Füllen keine Datei mit Leeren Namen erstellt werden kann  
05.
    Columns("G:G").Select 
06.
    Selection.Replace What:="", Replacement:="empty", LookAt:=xlPart, _ 
07.
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
08.
        ReplaceFormat:=False 
09.
 
10.
 
11.
 
12.
    Dim ws As Worksheet, newWS As Worksheet, cell As Range, dic As Object, c As Range 
13.
    'Dictionary-Objekt erzeugen 
14.
    Set dic = CreateObject("Scripting.Dictionary") 
15.
    'Worksheet festlegen in dem die Daten liegen 
16.
    Set ws = Sheets(1) 
17.
    'letze Zeile ermitteln 
18.
    lastRow = ws.UsedRange.Rows.Count 
19.
     
20.
    For Each cell In ws.Range("G25:G" & lastRow) 
21.
        'Wenn der Zustand in der aktuellen Zelle noch nicht verarbeitet wurde 
22.
        If Not dic.Exists(cell.Value) Then 
23.
            'Zustand zum Dictionary hinzufügen 
24.
            dic.Add cell.Value, "" 
25.
            'neues Worksheet hinzufügen 
26.
            Set newWS = Worksheets.Add(After:=Worksheets(Worksheets.Count)) 
27.
            'dem Worksheet den Namen des Zustandes geben 
28.
            newWS.Name = cell.Value 
29.
            'Überschriftenzeile übertragen 
30.
            ws.Range("A24").EntireRow.Copy newWS.Range("A24") 
31.
            'Suche in Spalte G 
32.
            With ws.Range(cell, "G" & lastRow) 
33.
                'Suche den Zustand in der aktuellen Zelle 
34.
                Set c = .Find(cell.Value, LookIn:=xlValues) 
35.
                If Not c Is Nothing Then 
36.
                    firstAddress = c.Address 
37.
                    Do 
38.
                        'Eintrag gefunden, kopiere die gefundene Zeile ins neue Sheet ans Ende 
39.
                        c.EntireRow.Copy newWS.UsedRange.Cells(newWS.UsedRange.Rows.Count + 1, 1) 
40.
                        'Suche den nächsten Eintrag 
41.
                        Set c = .FindNext(c) 
42.
                    Loop While Not c Is Nothing And c.Address <> firstAddress 
43.
                End If 
44.
            End With 
45.
        End If     
46.
    Next 
47.
 MsgBox "Its Done" 
48.
End Sub 
49.
 
50.
 
51.
 
52.
 
53.
 
54.
 




danke schon mal im voraus für die Hilfe


gruß chaos2go
Mitglied: 114757
16.01.2015, aktualisiert um 11:20 Uhr
Zitat von chaos2go:
Also wenn er mir z.B. den Sheet A erstellt Diesen xyz Text mit einfügen und darunter weiter machen mit den Einträgen
Wenn er jetzt zum erstellen von Sheet B kommt Diesen Text mit Blabla einfügen .
Ich glaube keiner versteht hier so ganz was du meinst. Nutze unseren vielfältigen Formatierungsmöglichkeiten um deiner Erklärung etwas mehr Klarheit zu verleihen.
Stell dir immer vor das wir dein Sheet nicht kennen...

Gruß jodel32
Bitte warten ..
Mitglied: Xolger
16.01.2015 um 11:37 Uhr
Hallo,

ich bin mit VBA Script nicht weiter vertraut, aber ausgehend von VBA sollte es doch möglich sein,
die erste Zeilennummer anzugeben, wo dein Report hingeschrieben wird.

Bzw. hast du eine Variable für den Zeilenindex und fängst mit deinen Texten bei Zele 1 an und die Variable wird dann beim Report weiter hochgezählt.


Gruß
Xolger
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 11:44 Uhr
Wenn ich erlich bin , wusste ich es auch nicht so genau wie ich es beschreiben sollte

aber ich ändere es jetzt gleich nochmal
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 11:45 Uhr
Ja das denke ich schon , man kann ja Ranges erstellen

Problem ist nur für jeden Status einen Direkten Text mit am Anfang anzufügen
Bitte warten ..
Mitglied: Xolger
16.01.2015 um 11:59 Uhr
Nimmst du VBA Script oder hast du ein Makro welches du unter VBA ausführst?
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 12:02 Uhr
Ich hab ein VBA Script
Bitte warten ..
Mitglied: Xolger
16.01.2015 um 12:06 Uhr
Keine Ahnung wie du es für den Report realisiert hast aber:
Vor der Ausgabe in einem Sheet kannst du doch erstmal eine Zelle (1,1) ansteuern und deinen Text reinschreiben lassen.
Dann legt der Report los und startet mit der Ausgabe halt bei Zelle (2,1).

Oder sehe ich das zu simpel?

Ansonsten poste mal einen Codeschnipsel damit man sieht wie das Script arbeitet.
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 12:43 Uhr
Ja in der Regel ja aber dann kommt für jeden zustand der Selbe Text

Das Problem ist jeder Zustand hat einen Seperaten Bestimmten Text
Bitte warten ..
Mitglied: Xolger
16.01.2015 um 12:54 Uhr
Du steuerst doch die Ausgabe für den Report auch Sheetabhängig oder?
Dann erstelle dir doch eine Variable für jeden Sheet bzw. übergebe an eine Variable den Sheetabhängigen Text bevor der Report im Sheet loslegt.
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 13:20 Uhr
Also er erstellt für jeden Zustand Eintrag einen neuen Sheet mit desen namen und allen Einträgen
Bitte warten ..
Mitglied: Xolger
16.01.2015 um 14:33 Uhr
Und da musst du ansetzen und deinen Text mit unterbringen.
Ohne Codeschnipsel aus deinem Script wird dir hier bloß keiner helfen können.
Wir wissen ja nicht wie dein Script aussieht, um dir genau zu sagen wo was rein muss.
Bitte warten ..
Mitglied: chaos2go
16.01.2015 um 14:45 Uhr
hab das script oben mit gepostet
Bitte warten ..
Mitglied: 114757
LÖSUNG 16.01.2015, aktualisiert 19.01.2015
Moin,
einfach in einem zweiten Dictionary zu Beginn deine Statustexte mit den Zuständen als Key hinterlegen:
01.
set dicZustandstexte = CreateObject("Scripting.Dictionary") 
02.
dic.add "Zustand1","Es muss das und das Gemacht werden" 
03.
dic.add "Zustand2","Hier muss es anders Gemacht werden " 
04.
dic.add "Zustand3","Und hier noch was anderes" 
05.
' und so weiter
Und dann hinter Zeile 30 folgendermaßen in das jeweilige Sheet einfügen
01.
if dicZustandstexte.Exists(cell.Value) then 
02.
    newWS.Range("A22").Value = dicZustandstexte.Item(cell.Value) 
03.
End if
Gruß jodel32
Bitte warten ..
Mitglied: chaos2go
19.01.2015 um 09:18 Uhr
merci ,
ich werde es mal versuchen umzusetzten


gruß chaos2go
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
EXCEL VBA Termindaten aus Tabelle Filtern
Frage von t3jxbusMicrosoft Office

Hallo, ich habe hier folgenden Codeblock gefunden für VBA im Excel: Das ganze funktioniert auch soweit super. Ich beschreibe ...

VB for Applications
Filtern mit VBA
gelöst Frage von Anna2701VB for Applications5 Kommentare

Hallo zusammen, ich habe eine Tabelle und will mit Hilfe eines Textfeldes nach dem Feld "Name" filtern, also möchte ...

VB for Applications
Excel VBA: Listbox Ausgabe über Comboboxen filtern
gelöst Frage von JuweeeVB for Applications2 Kommentare

Hallo, hat jemand zufällig ein Beispiel oder einen Link in peto, der zeigt wie die Ausgabe in einer Listbox ...

Microsoft Office
VBA Excel Automatisch Filtern und Zeilen vergleichen
Frage von mcflyjuleMicrosoft Office

Hallo liebe Community, ich bin neu hier und habe leider (noch) keine Kenntnisse in VBA Hab das bisher immer ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...