Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ähnliche abfrage auf mehrere zellen

ähnliche abfrage auf mehrere zellen
16.01.2004 10:04:32
Muck
Moin,
ich habe ca. 60 prozeduren (für eine tabelle) die alle was sehr ähnliches machen.....der unterschied zwischen den prozeduren ist:
1.) sie fragen die daten in anderen zellen ab (s.u. zeile 17,20,23)
2.) sie schreiben die abgefragten daten in andere zellen rein (s.u. zeile 28)
kann man das irgendwie durch eine schleife verkürzen bzw. in eine prozedur schreiben!?
die prozeduren sehen wie folgt aus:

Sub Zelle_F3()
2 Dim wb1 As Workbook, wb2 As Workbook, Summe1 As Single
3 Dim Summe2 As Single, summe3 As Single
4 Dim wsfern As Worksheet, xx As Worksheet
5    'Eingabemaske deaktivieren
6    Application.EnableEvents = False
7    'Datei zum lesen öffnen
8    Workbooks.Open ThisWorkbook.Path & "\NL01 Hoffmann.xls"
9      'Eingabemaske aktivieren
10    Application.EnableEvents = True
11     Set wb1 = Workbooks("NL01 Hoffmann.xls")
12     Set wb2 = Workbooks("Auswertungtabelle.xls")
13     Set wsfern = wb1.Worksheets("Bewerber")
14     Set xx = wb2.Worksheets("NL1 Hoffmann")
15     'Die Summebildung Zeile 2 bis 120
16      For i = 2 To 120
17      If wsfern.Cells (i, 22) = "ja" Then          ' 22 ist Spalte V
18                 Summe1 = Summe1 + 1                'Summenbildung
19        End If
20            If wsfern.Cells(i, 16) = "AD" Then          ' 16 Ist Spalte P
21            Summe2 = Summe2 + 1                     'Summenbildung
22        End If
23        If wsfern.Cells(i, 19) = 101 Then          ' 19 ist Spalte S
24            summe3 = summe3 + 1                     'Summenbildung
25        End If
26     Next
27        'Summe in andere Datei üernehmen
28        xx.Cells(3, 6) = Summe1 * Summe2 * summe3
29        'Datei schliessen
30            Workbooks("NL01 Hoffmann.xls").Close savechanges:=False
End Sub


Mfg
Muck

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ähnliche abfrage auf mehrere zellen
16.01.2004 12:07:35
Jürgen Schaetzke
Hallo Muck,
Entspricht dies deiner Vorstellung?
if Summe (22,16,19,Cells(3, 6).Address) then ....
private function Summe(byval InSp1 as integer,byval InSp2 as integer,byval InSp3 as integer,byval Out1 as string,) as boolean

2 Dim wb1 As Workbook, wb2 As Workbook, Summe1 As Single
3 Dim Summe2 As Single, summe3 As Single
4 Dim wsfern As Worksheet, xx As Worksheet
5 'Eingabemaske deaktivieren
6 Application.EnableEvents = False
7 'Datei zum lesen öffnen
8 Workbooks.Open ThisWorkbook.Path & "\NL01 Hoffmann.xls"
9 'Eingabemaske aktivieren
10 Application.EnableEvents = True
11 Set wb1 = Workbooks("NL01 Hoffmann.xls")
12 Set wb2 = Workbooks("Auswertungtabelle.xls")
13 Set wsfern = wb1.Worksheets("Bewerber")
14 Set xx = wb2.Worksheets("NL1 Hoffmann")
15 'Die Summebildung Zeile 2 bis 120
16 For i = 2 To 120
17 If wsfern.Cells (i,InSp1) = "ja" Then ' 22 ist Spalte V
18 Summe1 = Summe1 + 1 'Summenbildung
19 End If
20 If wsfern.Cells(i,InSp2) = "AD" Then ' 16 Ist Spalte P
21 Summe2 = Summe2 + 1 'Summenbildung
22 End If
23 If wsfern.Cells(i,InSp3) = 101 Then ' 19 ist Spalte S
24 summe3 = summe3 + 1 'Summenbildung
25 End If
26 Next
27 'Summe in andere Datei üernehmen
28 xx.Cells(Out1) = Summe1 * Summe2 * summe3
29 'Datei schliessen
30 Workbooks("NL01 Hoffmann.xls").Close savechanges:=False
31 Summe=true
End Sub
Ciao Jürgen
Anzeige
AW: ähnliche abfrage auf mehrere zellen
16.01.2004 12:47:13
Muck
kannst du mir vielleicht noch kurz erklären was genau wo passiert?
wie gesagt so doll sind meine vba-kenntniss nciht.....blicke da nicht so ganz durch!
AW: ähnliche abfrage auf mehrere zellen
16.01.2004 13:09:32
Jürgen Schaetzke
Hallo Muck,
Die Sub für jede Ergebniszelle habe ich zu einer Function umfunktioniert.
Anstatt call Sub_F3 oder Sub_F3 rufst du jetzt Summe auf und übergibst die Spaltennummern und die Ergebniszelle an die Funktion. Wenn kein fehler aufgetreten ist, erhälst du immer ein True zurück, das du im Aufruf abfragen kannst.
If not Summe(...) then msgbox "Es ist ein Fehler bei der Berechnung aufgetren"

Kurz gesagt, kannst du die Function übernehmen und zum testen einen Sub Aufruf durch den Aufruf ersetzen mit Angabe der betroffenen Spalten, die analysiert werden sollen und der Ergeniszelle (z.B. "A2") oder Cells(1,2).Address. Ausser der Angabe der Zellbezüge habe ich in der Function nichts geändert.
Ciao Jürgen
Anzeige
AW: ähnliche abfrage auf mehrere zellen
16.01.2004 14:09:00
Muck
Ok....jetzt hab ich so ungfähr verstanden was du gemacht hast.....aber deine lösung hilft mir nciht so richtig weiter...!
aber danke für den versuch!
Gruß Muck
AW: ähnliche abfrage auf mehrere zellen
16.01.2004 18:02:01
Jürgen Schaetzke
Hallo Muck,
Woran scheitert es denn?
Mit der Function und Parameterleiste können die subs entfernt werden und das Programm wird lesbarer und pflegbarer.
Ciao Jürgen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige