• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA verticaal zoeken

Status
Niet open voor verdere reacties.

nielsbl11

Gebruiker
Lid geworden
26 sep 2012
Berichten
98
Ik heb nu een hele database af maar nu wil ik met visual basic controleren of de cellen correct zijn ingevuld
Nu wil ik controleren of de cellen een goede waarde bezitten.

Voorbeeld

cel A1 = AB01_01 en B1= 300

Deze 2 waarden horen dus altijd bij elkaar maar stel er komt een waarde boven dan verspringt deze cel naar beneden. Het getal dat bij AB01_01 hoort moet altijd hoger zijn dan 100. Hoe kan ik dit voor meerdere cellen controleren? mij leek iets met verticaal zoeken in excel via visual basic. Zodat hij elke cel langsgaat en kijkt of de waarde die daarachter staat klopt. Maar ik heb geen idee hoe ik deze code schrijf en of het uberhaupt mogelijk is.
 
is dit iets?
Code:
Sub controle()
 Dim cel As Range
 Dim rng As Range
   Set rng = Range("A1:A100")
    For Each cel In rng.Cells
    
     If cel.Text = "AB01_01" And cel.Offset(0, 1) < 100 Then
       cel.Offset(0, 1).Interior.ColorIndex = 3
     Else
       cel.Offset(0, 1).Interior.ColorIndex = 0
     End If

   Next cel
End Sub
 
stapje in de goede richting. Maar als ik het goed begreip gaat hij nu in cel A1 tot A100 kijken of de waarde in de cel 100 of lager is?

De spreadsheet is als volgt opbouwd. In elke rij staan 2 ingevulde cellen. De eerste geeft een nummer aan die bij de afmeting hoort: AB01-01, AC04-01 enzv. Bij al deze waarden hoort een afmeting. In mijn voorbeeld was deze 300 en moest hij kijken of deze waarde hoger was dan 100. Maar de waarde waarmee hij moet vergelijken moet ik zelf in kunnen vullen omdat sommige cellen ook 0 mogen zijn zonder een melding te geven.
 
Dat er 2 kolommen zijn en dat de 2de kolom vergeleken moet worden dat weten we al, maar waar bevinden zich die vergelijkingswaarden zich dan ?
En wanneer mogen sommige cellen 0 zijn, staat dat dan ook ergens vermeld ?
Gooi er eens een voorbeeldbestand in zodat we iets hebben om mee te werken, want nu is het voor mij nog steeds koffiedik kijken
 
Laatst bewerkt:
Korte beschrijving:
Ik ben bezig met een programma die een automatische samenstelling genereerd in een 3D software pakket. In het programma zit een functie waarmee een tekstbestand van buitenaf geimporteerd kan worden. Hier gaat mijn vraag dus over. In dit tekstbestand kan het zo zijn dat benamingen op andere rijen komen te staan omdat er bijvoorbeeld een extra gegeven bij is gekomen. De benamingen staan wel in elk tekstbestand. In ieder bestand zal bijvoorbeeld de banaming AB01_01 voorkomen maar deze kan wel een rij naar beneden staan. De vergelijkingswaarden wil ik zelf kunnen bepalen. De 0 kan bijvoorbeeld een suppression zijn, dit betekend dat een bepaald part(onderdeel) kan worden verborgen.

Als er nog onduidelijkheden zijn zal ik een voorbeeld bestand aanmaken.

bedankt voor de snelle reacties
 
De vergelijkingswaarden wil ik zelf kunnen bepalen.
Allemaal goed en wel, maar WAAR ga je die vergelijkingswaarden dan plaatsen.
Lees de vragen die gesteld worden grondig en geef daarop een antwoord ipv het hoe en waarom uit te leggen.
Ik denk dat een voorbeeldbestandje méér dan aangewezen is, want nu geraken we geen meter vooruit.
 
Is niet wat ik bedoel. Nu geeft hij alleen de waarde die je aanklikt in een andere cel. wat ik bedoel is dat hij in de tabel gaat kijken of AA01_06 groter is dan 20. Als dit waar is dan gebeurd er niets als het niet waar is moet hij in een cel een foutmelding geven. Bijvoorbeeld waarde AA01_06 is te klein.

In excel kun je cel voorwaardelijke opmaak geven. In dit geval gaat hij kijken of cel AA01_06 groter is dan 20. als dit niet het geval is kun je de kleur van de cel bijvoorbeeld aan laten passen. maar als deze cel naarbeneden verspringt doordat er een waarde bij komt springt de voorwaardelijke opmaak niet mee. waardoor hij in een verkeerde cel gaat kijken.



Volgens mij moet het met een code visual basic.
 
Het voorbeeld dat jij postte ,dat had ik zelf ook al gemaakt, daar zijn we niks mee.
VOOR DE HONDERSTE KEER, WAAR STAAT DE TABEL WAARMEE DE WAARDEN IN KOLOM B VERGELEKEN MOETEN WORDEN!!!!!!!!!!!!!!
Als we die niet hebben, hoe moeten wij dan voor jou een code schrijven om alles te vergelijken als we nog niet eens weten waar deze tabel zich bevindt.:evil::evil::evil:
Dit is de laatste keer dat ik erom vraag, als je nu geen afdoend antwoord geeft, bekijk je het maar, dan houd het voor mij hier op.
 
Laatst bewerkt:
die waarden zitten in mijn hoofd.

PG04_04 is bijvoorbeeld de harthoogte van machine
AB01_04 is de breedte
AB09_01 is de hoogte van de trillingsdempers

maar het ging mij om de code. De vergelijkingswaarden kan ik zelf invullen.

Ik ben dus opzoek naar een code die "kan" zoeken naar AB01_04 en kan kijken of die waarde in de cel erna groter of gelijk is aan XXXX als dit niet het geval is in een andere cel een foutmelding of een waarde kan geven.

"""""Maar het zou dus ook kunnen dat als het nodig is een extra tabelletje aangemaakt wordt waarmee hij de waarden moet vergelijken...??? """""
 
Niels,

als je een nuttig antwoord wilt, zou ik maar een tabelletje m,aken met die waarden uit je hoofd, anders wordt het niks!
Het lijkt er nu op dat je iets SUPERgeheims aan het doen bent
 
"""""Maar het zou dus ook kunnen dat als het nodig is een extra tabelletje aangemaakt wordt waarmee hij de waarden moet vergelijken...??? """""
waarom verliest warm bakkertje zijn geduld ????
 

Bijlagen

klopt ik mag vrij weinig prijs geven daarom geef ik andere benamingen maar het gaat om het idee toch ^^

in excel kun je verticaal zoeken; er moet toch iets mogelijk zijn met visual basic waarmee je gaat zoeken naar AB01_01 en vervolgens in de cel ernaast kijkt of deze waarde groter of gelijk is aan X else foutmelding... of in een cel de coordinaten van de betreffende cel weergeven
 
de oplossing van cow18 is eventueel een oplossing.

zal ff kijken hoe het precies werkt

in iedergeval alvast bedankt :) sowieso voor het helpen van iedereen trouwens
 
in VBA zou je kunnen met worksheetfunction.vlookup werken, maar hoe die precies werkt is helaas geheim, dus kan ik je daar niet verder mee helpen:o
 
haha oke dan :P. Een nadeel van de voorwaardelijke opmaak is dat je het hele documentje door moet scrollen om te kijken of er een waarde niet naar wens is (1200 parameters) en sommige waarden zijn afhankelijk van de grote van de machine (15 verschillende types) vanaf type 10 is een waarde bijvoorbeeld altijd 0 (a)
 
Niels,

begrijp ik nou goed dat je het eigenlijk anders wilt dan de oplossing van cow18 (VWO), maar dat je (weer) niet aangeeft hoe dan wel?
 
Eigenlijk heb ik een paar voorstellen gegeven hoe ik dacht dat het zou kunnen. Het willen hebben klinkt zo veeleisend.
maar als het mogelijk is zou ik het zoveel mogelijk naar wens aanpassen.

1 cel die aangeeft dat er een waarde afwijkt
nieuwe: voorwaarde aangeven als cel B5 = >2000 mogen bijvoorbeeld B213 en B413 wel 0 zijn.
 
zelf gevonden :)
tabel waar ik me voorwaarde inzet simpele code :

=ALS(B390<0;10;0)

gelukkig kan ik zelf ook nog nadenken ^^
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan