robinvdveeken
Gebruiker
- Lid geworden
- 7 sep 2010
- Berichten
- 84
Wel gewaardeerde forumleden,
Inmiddels heb ik een zoekfunctie geschreven maar de code daarvan loop enorm uit de hand.
De zoekfunctie beslaat 9 tabbladen. Op elke regel (onderdeel) van dit tabblad kunnen drie masters( kolom M,N,O) en 5 slave mogelijkheden (kolom P,Q,R,S,T)worden ingegeven. Het gaat hierbij om strings.
Elke ingegeven master zal naar moeten worden gezocht in het slave gebied op elk 9 tabladen, er zijn er in totaal nog meer tabbladen maar deze vallen buiten de functie.
Als de masterwaarde is gevonden moet de cel inhoud van kolom A+B+C worden gekopieerd in een op een volgend lijstje (zeg kolom AG) en moet de zoekfunctie worden vervolgd tot het gehele gebied is doorlopen.
De zoekfunctie kan vanuit meerdere tabbladen worden aangesproken.
Inmiddels heb ik een werkende code maar je kan rustig gaan lunchen voor dat deze is doorlopen.
De code is alsvolgt opgebouwd:
Dit staat er dus 9x voor elk tabblad, en dat geheel dan weer 3x voor elke Master. Die 27 while loops heb ik op achter elk blad gekopieerd.
Ik hoop dat er een mogelijkheid is een snellere, kortere code te maken die ook makkerlijker te onderhouden is.
Kan iemand mij helpen?
Alvast bedankt.
Groeten,
Robin
Inmiddels heb ik een zoekfunctie geschreven maar de code daarvan loop enorm uit de hand.
De zoekfunctie beslaat 9 tabbladen. Op elke regel (onderdeel) van dit tabblad kunnen drie masters( kolom M,N,O) en 5 slave mogelijkheden (kolom P,Q,R,S,T)worden ingegeven. Het gaat hierbij om strings.
Elke ingegeven master zal naar moeten worden gezocht in het slave gebied op elk 9 tabladen, er zijn er in totaal nog meer tabbladen maar deze vallen buiten de functie.
Als de masterwaarde is gevonden moet de cel inhoud van kolom A+B+C worden gekopieerd in een op een volgend lijstje (zeg kolom AG) en moet de zoekfunctie worden vervolgd tot het gehele gebied is doorlopen.
De zoekfunctie kan vanuit meerdere tabbladen worden aangesproken.
Inmiddels heb ik een werkende code maar je kan rustig gaan lunchen voor dat deze is doorlopen.
De code is alsvolgt opgebouwd:
Code:
If Range("M" & power_nr) <> "" Then ' voorwaarde symbool ingevuld
Interlock_symbool = Range("M" & power_nr)
'zoeken op tabblad Power tabblad
While Sheets("Power").Range("D" & Slave_zoekregel) <> ""
If Sheets("Power").Range("P" & Slave_zoekregel) = Interlock_symbool Then
Range("AG" & Start_nr) = Range("B" & Slave_zoekregel) & Range("A" & Slave_zoekregel) & Range("C" & Slave_zoekregel)
Sheets("Power").Range("AF" & Start_nr + 1 & ":AG" & Start_nr + 1).Interior.ColorIndex = 15
're-init
Start_nr = Start_nr + 1
End If
If Sheets("Power").Range("Q" & Slave_zoekregel) = Interlock_symbool Then
Range("AG" & Start_nr) = Range("B" & Slave_zoekregel) & Range("A" & Slave_zoekregel) & Range("C" & Slave_zoekregel)
Sheets("Power").Range("AF" & Start_nr + 1 & ":AG" & Start_nr + 1).Interior.ColorIndex = 15
're-init
Start_nr = Start_nr + 1
End If
If Sheets("Power").Range("R" & Slave_zoekregel) = Interlock_symbool Then
Range("AG" & Start_nr) = Range("B" & Slave_zoekregel) & Range("A" & Slave_zoekregel) & Range("C" & Slave_zoekregel)
Sheets("Power").Range("AF" & Start_nr + 1 & ":AG" & Start_nr + 1).Interior.ColorIndex = 15
're-init
Start_nr = Start_nr + 1
End If
If Sheets("Power").Range("S" & Slave_zoekregel) = Interlock_symbool Then
Range("AG" & Start_nr) = Range("B" & Slave_zoekregel) & Range("A" & Slave_zoekregel) & Range("C" & Slave_zoekregel)
Sheets("Power").Range("AF" & Start_nr + 1 & ":AG" & Start_nr + 1).Interior.ColorIndex = 15
're-init
Start_nr = Start_nr + 1
End If
If Sheets("Power").Range("T" & Slave_zoekregel) = Interlock_symbool Then
Range("AG" & Start_nr) = Range("B" & Slave_zoekregel) & Range("A" & Slave_zoekregel) & Range("C" & Slave_zoekregel)
Sheets("Power").Range("AF" & Start_nr + 1 & ":AG" & Start_nr + 1).Interior.ColorIndex = 15
're-init
Start_nr = Start_nr + 1
End If
're-init
Slave_zoekregel = Slave_zoekregel + 1
Wend
Dit staat er dus 9x voor elk tabblad, en dat geheel dan weer 3x voor elke Master. Die 27 while loops heb ik op achter elk blad gekopieerd.
Ik hoop dat er een mogelijkheid is een snellere, kortere code te maken die ook makkerlijker te onderhouden is.
Kan iemand mij helpen?
Alvast bedankt.
Groeten,
Robin