MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 19.06.2019, 13:25   #1
Sebbi85
MOF User
MOF User
Standard VBA - For Schleife

Hallo zusammen,


habe folgenden Code:


PHP-Code:

For Mo 4 To 365 Step 7 '  Startet bei Spalte 4 und trägt alle 7 Spalten einen Wert bis Spalte 378 ein
        
                If Worksheets("Tabelle1").Cells(x, 4).Value = "Action" Or Worksheets("Tabelle1").Cells(x, 4).Value = "Krimi" Then '
Prüft ob einer der Werte in Tabelle 1 vorhanden istx ist bereits eine For Schleifewo er die Zeile durchläuft.
                    If 
Worksheets("Tabelle1").Cells(x17).Value = [b]"Mo"[/b] And Worksheets("Tabelle1").Cells(x15).Value "Gekauft" Then
                        Worksheets
("Bilanz").Cells([b]15[/b], Mo).Value Worksheets("Bilanz").Cells(15Mo).Value 1
                    
                    End 
If
        
                   
End If
Next Mo 



Es geht um die "fett" markierten Worte/Zahlen im Code.
Ich würde gerne per Schleife von "Mo" bis "So" hochzählen.
Dies soll wiederholt werden bis ich bei Spalte 365 angekommen bin, damit ich für das ganze Jahr meine Werte in der Tabelle eingetragen bekomme.
Hatte an eine Schleife + Array gedacht.
Geht sowas? Stehe aufn Schlauch wie ich dass mit einem Array verbinden kann.


Zusätzlich soll die 15 bis 44 hochzählen. Würde ich auch wieder über eine For Schleife lösen.
Meine Frage ist, wie müssen die Einschübe der For Schleifen aussehen? Gibt es noch andere Lösungen, die empfehlenswerter sind?
Wäre klasse, wenn jemand fürs weitere Vorgehen mir helfen könnte.


Grüße Sebbi

Geändert von Sebbi85 (19.06.2019 um 13:34 Uhr).
Sebbi85 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.06.2019, 13:29   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

fette wörter sehe ich nicht.

Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.

Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese Mappe mit einem
http://www.ms-office-forum.net/forum...72&postcount=3
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/...d.php?t=322895
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms).

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm*, Forum* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.

Bitte berücksichtige das Themen die Erledigt sind als Erledigt markiert werden können. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Fragen werden im Forum beantwortet, nicht per PN.
Hajo_Zi ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.06.2019, 15:05   #3
aloys78
MOF Meister
MOF Meister
Standard

Hallo Sebbi,

mit dem Code und den paar dürren Anmerkungen kann ich nicht viel anfangen.

ich empfehle Dir, eine Beispieldatei hochzuladen und daran zu veranschaulichen, was der Ausgangsstatus ist und wie das Ergebnis aussehen soll.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 07:47   #4
Sebbi85
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo zusammen,

da habt ihr natürlich Recht. Ich habe anbei einmal eine Testumgebung hochgeladen.
Auf dem Tabellenblatt "IstDaten" habe ich meine Buchungsvorgänge.

Wenn in Spalte Bücher "Krimi" steht und der Wochentag "Mo" ist und bei Buchung "Verkauft" steht, dann soll er bei Bilanz in allen KW bei Mo das Value +1 setzen. (den Sinn dabei erstmal nicht hinterfragen ).

Das gleiche möchte ich auch für die anderen Wochentage (Di, Mi, Do..etc) - fortlaufend über das Jahr. Deshalb auch 365 Spalten..
Wo kann ich die Variabeln hinterlegen, sodass er die Wochentage direkt einfügt und ich den Code nicht für jeden Tag noch einmal neu schreiben muss?
Kann man das mit einem Array lösen? Ich hoffe ich konnte dass so einigermaßen rüberbringen...
Angehängte Dateien
Dateityp: xlsm Test Datei.xlsm (19,9 KB, 3x aufgerufen)
Sebbi85 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 07:52   #5
Hajo_Zi
MOF Guru
MOF Guru
Standard

ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
Das wird schon seinen Grund haben.

Gruß Hajo

__________________

Signatur in jedem Beitrag
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Fragen werden im Forum beantwortet, nicht per PN.
Hajo_Zi ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 08:17   #6
Sebbi85
Threadstarter Threadstarter
MOF User
MOF User
Standard

Sorry, ist noch zu früh für mich. Anbei einmal mit richtiger Bezeichnung.
Angehängte Dateien
Dateityp: xlsm Serienbrief_1933892.xlsm (19,9 KB, 4x aufgerufen)
Sebbi85 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 10:23   #7
Luschi
MOF Meister
MOF Meister
Standard

Hallo Sebbi,

ich finde es schade, daß Du in Zeiten von Datenschutz-Datenschutz-... auf die sinnlose Forderung eingehst, passende Dateinamen zu bilden und dann hier erst hochzuladen.
Laß doch Hajo die beleidigte Leberwurst spielen und reagiere in Zukunft nicht mehr drauf und das Wortchen 'Sorry' ist hier total unpassend.
In anderern Excel-Foren (z.B. www.herber.de) ist die Erfüllung dieser Forderung sowieso nicht möglich; also Hajo - was sollen diese dummen Textbaustein-Kommentare.

Gruß von Luschi
aus klein-Paris
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 10:38   #8
R J
MOF Meister
MOF Meister
Standard

Hi Sebbi,

Zitat:

Wenn in Spalte Bücher "Krimi" steht und der Wochentag "Mo" ist und bei Buchung "Verkauft" steht, dann soll er bei Bilanz in allen KW bei Mo das Value +1 setzen. (den Sinn dabei erstmal nicht hinterfragen ).

....smile... ich kann auch keinen dahinter erkennen. Zumindest fällt es mir schwer, zu glauben, dass ihr nur Montags Krimis verkauft....

2 Anmerkungen dazu:

1. Den Aufbau halte ich für suboptimal. Bei 365 Spalten scrollt man sich den Wolf. Auch halte ich, wie schon erwähnt, eine vernünftige Auswertung unter den gegebenen Bedingungen für nicht gegeben.
2. VBA ist da nicht unbedingt erforderlich. Da Du aber auch nach anderen Lösungen suchst, kann ich Dir 2 Vorschläge unterbreiten. Jedoch mit einem anderen Aufbau der Datenstruktur.

Der 1. (Bilanz (2)), müsste Deinen Vorstellungen entsprechen (wenn ich sie richtig interpretiert habe)
Der 2. (Bilanz (3)), kommt meinen Vorstellungen einer vernünftigen Auswertung entgegen.

Beide basieren auf intelligenten Tabellen. Das heißt, ich kann die Daten auch wunschemäß filtern. Für Daten(3) gilt, wenn ich z. Bsp. vermeiden will, dass ich den Verkauf von Krimis ausversehen in den Dienstag eintrage, dann filtere ich vorher die Spalte Wochentag über den Datumsfilter und sage: entspricht Mo. Entsprechend kann ich auch die anderen Spalten filtern...
Angehängte Dateien
Dateityp: xlsm Buchverkäufe.xlsm (77,4 KB, 3x aufgerufen)

__________________

Ciao, Ralf

Kommt mir irgendwie bekannt vor...
Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.


R J ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 11:43   #9
Sebbi85
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo ihr beiden,

danke schon mal für eure Antworten
Rj echt klasse dass du dir so viel Mühe gegeben hast.
Dass ist aber leider noch nicht ganz dass, was ich benötige.

Was ich hochgeladen habe ist eine Testumgebung, da ich das Original nicht posten kann, da dort sensible Daten verwendet werden.
Durch meine Veränderungen merke ich auch, dass meine Anforderungen für "Außenstehende" nicht ganz sinnvoll erscheinen.

In meinem Urpsrungscode habe ich folgende Zeile:

If Worksheets("Tabelle1").Cells(x, 17).Value = "Mo"

Ich möchte, dass er dass "Mo" durch weitere Wochentage ersetzt.
Gebe ich die Wochentage dann per Array vor und lasse dann darüber noch einmal eine Schleife laufen, damit er dann da einmal alle Varianten durchspielt? Somit kann ich dann ja mein Jahr mit den Werten füllen.

Meine direkte Frage. Wie sieht ein Array mit einer Schleife aus?

Code:

Dim TestArray (1 To 3) As String

TestArray(1) ="Mo"
TestArray(2) ="Di"
TestArray(3) ="Mi"
TestArray(4) ="Do"
TestArray(5) ="Fr"
TestArray(6) ="Sa"
TestArray(7) ="So"


.....

Wie bekomme ich diese Werte in die Schleife rein? For x = TestArray(1) To UBound(TestArray) und dann X für "Mo" einsetzen?
Sebbi85 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 12:12   #10
R J
MOF Meister
MOF Meister
Standard

...ich hab zwar immer noch nicht so recht verstanden was Du willst, und da es ja unbedingt VBA sein muss...

Meintest Du sowas? Vergleiche den Wochentag, die Art des Genres und die Aktion... Geht auch ohne Array...
Code:

Sub Codeausführen()

Dim ZeileInIstDaten As Integer
Dim letzteZeile As Integer
Dim bilanz As Worksheet, daten As Worksheet, art As String
Dim wotag As String, buchung As String
Set daten = Tabelle1
Set bilanz = Tabelle3

'***********************************************************************************************************************************

letzteZeile = Worksheets("IstDaten").Cells(Rows.Count, 4).End(xlUp).Row

        For ZeileInIstDaten = 1 To letzteZeile
            art = daten.Cells(ZeileInIstDaten, 4)
            wotag = daten.Cells(ZeileInIstDaten, 5)
            buchuing = daten.Cells(ZeileInIstDaten, 15)
            For Tag = 4 To 365 Step 7 'Fängt bei Spalte 4 an und setzt alle 7 Spalten einen Eintrag - über das ganze Jahr
        
                If daten.Cells(ZeileInIstDaten, 4).Value = art Then
                    If daten.Cells(ZeileInIstDaten, 5).Value = wotag And Worksheets("IstDaten").Cells(ZeileInIstDaten, 15).Value = buchung Then
                        bilanz.Cells(15, Tag).Value = bilanz.Cells(15, Tag).Value + 1
                    End If
                End If
        Next Tag

    Next ZeileInIstDaten
Set daten = Nothing
Set bilanz = Nothing
End Sub

__________________

Ciao, Ralf

Kommt mir irgendwie bekannt vor...
Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.


R J ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.06.2019, 17:33   #11
R J
MOF Meister
MOF Meister
Standard

...ich glaube, ich weiß jetzt was Du wolltest. Ich halte das Vorhaben zwar immer noch für fragwürdig, aber was soll's...
Angehängte Dateien
Dateityp: xlsm Buchverkäufe2.xlsm (19,9 KB, 2x aufgerufen)

__________________

Ciao, Ralf

Kommt mir irgendwie bekannt vor...
Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.


R J ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.06.2019, 07:40   #12
Sebbi85
Threadstarter Threadstarter
MOF User
MOF User
Standard

Das zweite ist es! Vielen lieben Dank.
Ja, aber wenn ich es in meine originale Mappe einbaue, passt es

Schönen Start in die Woche

Liebe Grüße

Sebbi
Sebbi85 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.