MS-Office-Forum
Google
   

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

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 09.08.2017, 12:09   #1
niccki
Neuer Benutzer
Neuer Benutzer
Standard VBA - Liste mit Bedingungen

Hallo, leider bringen Google-Suche kombiniert mit meinen sehr bescheidenen VBA-Kenntnissen nicht weiter (wie gerne würde ich alleine DIESEN Fakt jetzt in VBA Ausdrücken können ;-) ).

Könnte mir jemand helfen, folgendes in VBA zu übersetzen?

Wenn der Wert in Spalte B in den Tabellenblättern T1,T2,T3 und T4 JA ist, dann mache eine Liste in T5.
Die Liste soll nach den Werten in E sortiert sein. Idealerweise mit einer Überschrift. Also so:

Wert A haben:
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK

Wert B haben:
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK

usw.

Die Werte wären in dem Fall A,B,C,D,E,F,G,H

Ohne VBA lässt sich das wegen der Quelle in mehreren Tabellenblättern leider nicht lösen *seufz*.
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.08.2017, 13:11   #2
rastrans
MOF Koryphäe
MOF Koryphäe
Standard

Du hast vergessen eine Beispielmappe einzustellen!

__________________

There are 10 different types of people in the world. Those who understand the binary system and those who not.

Da für die Helfer der einzige Lohn eine Rückmeldung ist, wäre ein kurzes Feedback wünschenswert.
Auch sehen andere User, die ein ähnliches Problem haben, inwiefern die Lösung zur Beseitigung des Problems beigetragen hat.
Übrigens : Hilfreiche und positive Beiträge kann man auch bewerten!
rastrans ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.08.2017, 13:49   #3
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

okay, also gerne hier
Angehängte Dateien
Dateityp: xlsx Schülerliste verschicken.xlsx (56,0 KB, 8x aufgerufen)
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.08.2017, 19:25   #4
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

ich weiß, es ist extrem unschick, eine Nachricht zu pushen, aber nachdem die Frage nunmehr auf der dritten Seite gelandet ist, fürchte ich, dass meine Hoffnungen sonst zerrinnen. Ich arbeite mich derweil in VBA weiter ein, dennoch wäre es schön, wenn das klappen könnte, bevor ich das EVENTUELL (ich sehe das noch nicht) selbst kann.
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.08.2017, 19:51   #5
rastrans
MOF Koryphäe
MOF Koryphäe
Standard

Könntest du deine Exceldatei mal so erstellen, das man sieht, was du willst!?! Aus deinem Text werde ich nicht schlau

Zitat:

Wert A haben:
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK

Wert B haben:
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK
- Ausgabe Zelle CDHIK

usw.

Die Werte wären in dem Fall A,B,C,D,E,F,G,H

Was soll das heissen???

Gib doch einfach ein paar Werte in T1-4 ein, und die Lösung dann in T5. Dann kann man auch erkennen, was man programmieren soll.

__________________

There are 10 different types of people in the world. Those who understand the binary system and those who not.

Da für die Helfer der einzige Lohn eine Rückmeldung ist, wäre ein kurzes Feedback wünschenswert.
Auch sehen andere User, die ein ähnliches Problem haben, inwiefern die Lösung zur Beseitigung des Problems beigetragen hat.
Übrigens : Hilfreiche und positive Beiträge kann man auch bewerten!
rastrans ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.08.2017, 08:52   #6
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen DAnk für den Hinweis, als Schreiberling ist es mir natürlich viel klarer als anderen.
Ich habe nun versucht, in T6 mal aufzuschreiben, wie ungefähr ich das gerne aus den Werten aus T1-T5 hätte.

Herzlichen Dank schonmal für Eure Hilfe!
Angehängte Dateien
Dateityp: xlsx Schülerliste verschicken.xlsx (55,5 KB, 2x aufgerufen)
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 14:13   #7
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

nach Rücksprache mit rastrans hier nochmal die Beispieldatei mit Namen.

In T6 sind Klasse 5-7 ausgefüllt, in T1-T5 sind noch mehr Daten, auch für die anderen Klassen, die ich jedoch nicht noch in die Auswertung übertragen habe. Ich hoffe, dass es nun klar wird, was ich gemeint habe.

Wichtig noch: es sollten nur die AKTIVEN SchülerInnen übernommen werden, also die, wo C = ja
Angehängte Dateien
Dateityp: xlsx Schülerliste verschicken.xlsx (56,7 KB, 4x aufgerufen)
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 15:13   #8
rastrans
MOF Koryphäe
MOF Koryphäe
Standard

Ich hoffe, ich habe das jetzt richtig verstanden. Die Startprozedur ist die AktiveSchueler
Code:

Public Sub AktiveSchueler()
    Const c_WorksheetNames = "*T1*T2*T3*T4*T5*Sonstige*"
    Dim ws As Worksheet
    Dim lngZeile As Long
    
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
    
    For Each ws In Worksheets
        If InStr(1, c_WorksheetNames, "*" & ws.Name & "*", vbTextCompare) > 0 Then
            lngZeile = 2
            Do Until lngZeile > ws.UsedRange.Rows.Count
                If StrComp(ws.Cells(lngZeile, 3).Value, "ja", vbTextCompare) = 0 Then
                    Call SchuelerUebertragen(ZeileSchueler:=ws.Rows(lngZeile))
                End If
                lngZeile = lngZeile + 1
            Loop
        End If
    Next
    
    Application.ScreenUpdating = True
    Application.CutCopyMode = True
End Sub

Private Sub SchuelerUebertragen(ZeileSchueler As Range)
    Dim wsQuelle As Worksheet
    Dim wsZiel As Worksheet
    Dim rng As Range
    Dim lngZeile As Long
    
    Set wsZiel = Worksheets("T6")
    Set wsQuelle = ZeileSchueler.Parent
    Set rng = wsZiel.Columns(1).Find(What:="Klasse " & ZeileSchueler.Cells(1, 6).Value, LookAt:=xlWhole)
    If Not rng Is Nothing Then
        lngZeile = rng.Row
        Do
            lngZeile = lngZeile + 1
        Loop Until IsEmpty(wsZiel.Cells(lngZeile, 1)) Or lngZeile > 5000
        If lngZeile > 5000 Then Exit Sub
        Rows(lngZeile).Insert Shift:=xlDown
        wsZiel.Cells(lngZeile, 1).Value = ZeileSchueler.Cells(1, 4).Value
        wsZiel.Cells(lngZeile, 2).Value = ZeileSchueler.Cells(1, 5).Value
        wsZiel.Cells(lngZeile, 3).Value = ZeileSchueler.Cells(1, 7).Value
        wsZiel.Cells(lngZeile, 4).Value = "Eintritt"
        wsZiel.Cells(lngZeile, 5).Value = ZeileSchueler.Cells(1, 9).Value
        wsZiel.Cells(lngZeile, 6).Value = "Austritt"
        wsZiel.Cells(lngZeile, 7).Value = ZeileSchueler.Cells(1, 10).Value
        wsZiel.Cells(lngZeile, 8).Value = ZeileSchueler.Cells(1, 12).Value
    End If
End Sub

__________________

There are 10 different types of people in the world. Those who understand the binary system and those who not.

Da für die Helfer der einzige Lohn eine Rückmeldung ist, wäre ein kurzes Feedback wünschenswert.
Auch sehen andere User, die ein ähnliches Problem haben, inwiefern die Lösung zur Beseitigung des Problems beigetragen hat.
Übrigens : Hilfreiche und positive Beiträge kann man auch bewerten!
rastrans ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 15:35   #9
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Herzlichen Dank, rastrans, für die schnelle Antwort. Der Code funktioniert fürs Erste und ich werde nun versuchen ihn zu verstehen und ihn so zu übertragen, wie er für die Originaldatei erforderlich ist.
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 16:16   #10
niccki
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Soweit so gut, ich würde das Ganze gerne so anpassen, dass die Überschriften in VBA geschrieben werden und somit jeder Abschnitt so lang ist, wie er eben sein muss.

Das kann eben je Klasse und Stand des Schuljahres extrem unterschiedlich sein.

Also es soll schon so aussehen, wie bisher, aber eben dynamisch, was den Platz betrifft.
niccki ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.08.2017, 16:28   #11
rastrans
MOF Koryphäe
MOF Koryphäe
Standard

Dann schreib mal nur deine Überschriften. Wichtig ist nur, das in Spalte A das Wort KLASSE gefolgt von einem Leerzeichen steht. Nach der Überschrift muss eine Leerzeile stehen, dann die nächste Klasse mit ihrer Überschrift. Die Anzahl der Schüler ist unerheblich. Meine Prozedur schafft sich schon Platz.

Das macht die Zeile
Code:

Rows(lngZeile).Insert Shift:=xlDown

__________________

There are 10 different types of people in the world. Those who understand the binary system and those who not.

Da für die Helfer der einzige Lohn eine Rückmeldung ist, wäre ein kurzes Feedback wünschenswert.
Auch sehen andere User, die ein ähnliches Problem haben, inwiefern die Lösung zur Beseitigung des Problems beigetragen hat.
Übrigens : Hilfreiche und positive Beiträge kann man auch bewerten!
rastrans 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 05:01 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

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

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