Goedemorgen allen,
Ik heb een probleem met het "inlezen" van data uit een kolom. Deze kolom kan echter langer en korter worden, omdat er vaak rijen toegevoegd worden, en af en toe worden er rijen verwijderd. Nu dacht ik het opgelost te hebben door het begin van de in te lezen data aan te geven, en het einde van de in te lezen data. Helaas wordt dit nu veel te uitgebreid, en blijf ik maar getallen aanpassen. Dit wil ik automatiseren.
Visuele uitleg:
Ik heb data staan in kolom F. De in te lezen data loopt van F12 tot F33. In een aantal cellen staat een woord. Dit woord kan veranderen door input van de gebruiker. F12 tot F33 stelt een configuratie voor. Van deze configuraties heb ik nu 3 verschillende. (het wordt vanzelf duidelijk in de bijgeleverde excel file).
De volgende configuratie wordt samengesteld uit F38 tot F59. De volgende configuratie uit F64 tot F85.
Nu heb ik een code in VBA, die zelf opzoekt welke woorden er in deze kolom staan. Dit heb ik gedaan per configuratie.
In de vorm van: "Als dit woord, daar staat, dan ga je dit doen".
De configuraties geef ik nu aan als volgt:
Dit werkt opzich aardig. Het programma doet wat het moet doen. Het probleem is echt dat ik per configuratie moet aangeven, "waar deze zich bevindt" (met de i'tjes). Dit gaat natuurlijk goed wanneer dezelfde format wordt gehanteerd. Nu is het alleen zo, dat er vaak rijen worden toegevoegd, rijen worden verwijderd, en dat er veel configuraties gaan bijkomen. (in het voorbeeld zijn het er 3, ik heb er sowieso al 8).
Wat ik wil is het volgende: Kan ik per configuratie een start en eindpunt aangeven? Zodat hij dit automatisch blijft inlezen, en ik niet per verandering, ook de i'tjes moet aanpassen.
Dus dat ik bij configuratie 1, voor het inlezen s_start010 zet, en aan het eind, s_end010. Configuratie 2 start bij s_start020 en houdt op bij s_end020.
Dat ik iets als het volgende krijg:
etc.
Ik hoop dat het duidelijk is, ik vind het heel lastig uit te leggen.
Bijgevoegd een klein overzichtje. let niet op de namen, dat is configuratie afhankelijk.
Alvast bedankt, en ik hoop dat het duidelijk is! Zo niet, ga ik het uiteraard nog eens proberen.
BartBekijk bijlage 217555
Ik heb een probleem met het "inlezen" van data uit een kolom. Deze kolom kan echter langer en korter worden, omdat er vaak rijen toegevoegd worden, en af en toe worden er rijen verwijderd. Nu dacht ik het opgelost te hebben door het begin van de in te lezen data aan te geven, en het einde van de in te lezen data. Helaas wordt dit nu veel te uitgebreid, en blijf ik maar getallen aanpassen. Dit wil ik automatiseren.
Visuele uitleg:
Ik heb data staan in kolom F. De in te lezen data loopt van F12 tot F33. In een aantal cellen staat een woord. Dit woord kan veranderen door input van de gebruiker. F12 tot F33 stelt een configuratie voor. Van deze configuraties heb ik nu 3 verschillende. (het wordt vanzelf duidelijk in de bijgeleverde excel file).
De volgende configuratie wordt samengesteld uit F38 tot F59. De volgende configuratie uit F64 tot F85.
Nu heb ik een code in VBA, die zelf opzoekt welke woorden er in deze kolom staan. Dit heb ik gedaan per configuratie.
In de vorm van: "Als dit woord, daar staat, dan ga je dit doen".
De configuraties geef ik nu aan als volgt:
Code:
For i = 12 To 33
If Sheets("Configuration_generator").Range("F" & i) = "Retracted" Then
Call Jib_retracted
ElseIf Sheets("Configuration_generator").Range("F" & i) = "Extended" Then
Call Jib_extended
ElseIf Sheets("Configuration_generator").Range("F" & i) = "No_Jib" Then
Call No_jib
ElseIf Sheets("Configuration_generator").Range("F" & i) = "On_Jib_ex" Then
Call COB_jib_extended
ElseIf Sheets("Configuration_generator").Range("F" & i) = "On_Jib_re" Then
Call COB_jib_retracted
ElseIf Sheets("Configuration_generator").Range("F" & i) = "On_hammerhead" Then
Call COB_nojib
ElseIf Sheets("Configuration_generator").Range("F" & i) = "No_COB" Then
Call No_COB
.
.
.
.
.
End If
Next i
Call Calculations
End If
Dit werkt opzich aardig. Het programma doet wat het moet doen. Het probleem is echt dat ik per configuratie moet aangeven, "waar deze zich bevindt" (met de i'tjes). Dit gaat natuurlijk goed wanneer dezelfde format wordt gehanteerd. Nu is het alleen zo, dat er vaak rijen worden toegevoegd, rijen worden verwijderd, en dat er veel configuraties gaan bijkomen. (in het voorbeeld zijn het er 3, ik heb er sowieso al 8).
Wat ik wil is het volgende: Kan ik per configuratie een start en eindpunt aangeven? Zodat hij dit automatisch blijft inlezen, en ik niet per verandering, ook de i'tjes moet aanpassen.
Dus dat ik bij configuratie 1, voor het inlezen s_start010 zet, en aan het eind, s_end010. Configuratie 2 start bij s_start020 en houdt op bij s_end020.
Dat ik iets als het volgende krijg:
Code:
For i = s_start010 To s_end010
.
.
.
End If
Next i
Call Calculations
End If
For i = s_start020 To s_end020
.
.
.
End If
Next i
Call Calculations
End If
etc.
Ik hoop dat het duidelijk is, ik vind het heel lastig uit te leggen.
Bijgevoegd een klein overzichtje. let niet op de namen, dat is configuratie afhankelijk.
Alvast bedankt, en ik hoop dat het duidelijk is! Zo niet, ga ik het uiteraard nog eens proberen.
BartBekijk bijlage 217555
Bijlagen
Laatst bewerkt: