• 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.

Gegevens ophalen als aan voorwaarde wordt voldaan

Status
Niet open voor verdere reacties.

Gerard2348

Gebruiker
Lid geworden
24 okt 2013
Berichten
370
Beste forum experts,

Ooit heb ik een vraag geplaatst om namen te kleuren wanneer aan een aantal voorwaarden werd voldaan. Ik heb een verzoek geplaatst om deze vraag te heropenen maar helaas. De destijds aangedragen oplossing werk maar de behoefte is anders geworden. Vandaar dit nieuwe verzoek. In het bestand op Blad3 staan blokken met namen en in de blauwe gedeelte de voorwaarde waaraan moet worden voldaan. De voorwaarde staan op het Blad Voorwaarde. Dit gebeurt nu met het kopiëren van een formule via VBA.

Wanneer er inhoud uit cellen wordt weg gehaald dan gaat het mis. Ik heb geprobeerd om de destijds aangedragen oplossingen te gebruiken maar dit is mij niet gelukt. Wie kan mij verder helpen.

Groet Geer
 

Bijlagen

  • index en vergelijken namen voorwaarde.xlsm
    50,9 KB · Weergaven: 48
Waar heb je deze vraag ooit geplaatst? Linkje? Waarom dmv een macro steeds dezelfde formules genereren? Uit welke cellen wordt inhoud weggehaald? Wat gaat er mis? Een aantal blauwe cellen is gekoppeld aan een aantal gele cellen. Mogelijk dat het hierdoor misgaat?
 
Geen formules meer; het wordt bijgewerkt bij elke wijziging die je doet in beide bladen.

Zie bestand.
 

Bijlagen

  • index en vergelijken namen voorwaarde.xlsb
    33,7 KB · Weergaven: 48
Wow.......
volgens mij is dit inderdaad hoe ik het wil.

:thumb:

Ga het vanavond uitgebreid testen.
 
Laatst bewerkt:
Ha Harry,

Het een en ander heb ik uitgetest. Niet geheel zonder een obstakel. Wanneer ik de voorwaarde update dan lijkt het alsof hij in een loop blijft hangen. Wanneer ik de Private Sub Worksheet_Change1(ByVal Target As Range) in het Blad3 en in het Blad "Voorwaarde" niet gebruik dan gaat het goed. Waar ik ook tegen aan loop is dat wanneer er met de cellen (blauwe gedeelte voor de namen) wordt gesleept om deze op een andere plaats te zetten of te wisselen naar een andere positie het niet goed gaat. Dit komt natuurlijk door de cel verwijzing naar deze cellen in het gele gedeelte. Is er een mogelijkheid om deze cellen te kopiëren. Dus Range ("G18:G22") naar Range ("G17:K17"), Range ("Q18:Q22") naar Range ("R17:U17") enz.
 
Laatst bewerkt:
Ietsje anders.
Code:
Sub hsv()
Dim sv, area As Range, arr, i As Long, ii As Long, j As Long, jj As Long
sv = Sheets("voorwaarde").Cells(5, 2).CurrentRegion.Resize(, 40)
For Each area In Sheets("blad3").Range("G17:L22, Q17:V22, AA17:AF22, G25:L30, Q25:V30, AA25:AF30, G33:L38, Q33:V38, AA33:AF38").Areas
 arr = area
 For i = 2 To UBound(arr)
 If i > 2 Then arr(1, i - 1) = arr(i, 1)
  If arr(i, 6) <> "" Then
   For ii = 2 To UBound(sv)
          If LCase(arr(i, 6)) = LCase(sv(ii, 1)) Then
            For j = 2 To 5
             For jj = 6 To UBound(sv, 2)
                If arr(1, j) = sv(1, jj) And LCase(sv(ii, jj)) = "x" Then
                   arr(i, j) = "x"
                   Exit For
                 Else
                   arr(i, j) = 0
                End If
              Next jj
            Next j
          End If
        Next ii
      Else
          For j = 2 To 5
             arr(i, j) = ""
          Next j
   End If
  Next i
  area = arr
Next area
End Sub
Door de array(arr) worden de formules in de gele cellen veranderd in waarden.
 
Ha Harry,

Ik heb de code geprobeerd en tot nu is dit perfect.....:thumb::thumb:
Alleen heb ik gemerkt dat ik de code 2x moet uitvoeren voordat alle voorwaarde zijn bijgewerkt.
 
Laatst bewerkt:
Probeer het zo maar eens weer Gerard.
Code:
Sub hsv()
Dim sv, area As Range, arr, i As Long, ii As Long, j As Long, jj As Long
sv = Sheets("voorwaarde").Cells(5, 2).CurrentRegion.Resize(, 40)
For Each area In Sheets("blad3").Range("G17:L22, Q17:V22, AA17:AF22, G25:L30, Q25:V30, AA25:AF30, G33:L38, Q33:V38, AA33:AF38").Areas
 arr = area
 For i = 2 To UBound(arr)
  If arr(i, 6) <> "" Then
   For ii = 2 To UBound(sv)
          If LCase(arr(i, 6)) = LCase(sv(ii, 1)) Then
            For j = 2 To 5
             arr(1, j) = arr(j+1, 1)
               For jj = 6 To UBound(sv, 2)
                If arr(1, j) = sv(1, jj) And LCase(sv(ii, jj)) = "x" Then
                   arr(i, j) = "x"
                   Exit For
                 Else
                   arr(i, j) = 0
                End If
              Next jj
            Next j
          End If
        Next ii
      Else
          For j = 2 To 5
             arr(i, j) = ""
          Next j
   End If
  Next i
  area = arr
Next area
End Sub
 
Laatst bewerkt:
Toch lijkt me het gebruik van Excelforumules hier eenvoudiger en voor-de-hand-liggender:
 

Bijlagen

  • __index en vergelijken snb 001.xlsb
    20,7 KB · Weergaven: 35
Dat het voor de hand ligt om voor excel formules te kiezen kan ik mij heel goed voorstellen. Alleen het probleem is dat er soms blokken van 5 personen worden gebruikt en soms 4. Met blokken bedoel ik de cellen die voorzien zijn van randen en de gele rij waar de personen onder staan en voorwaarde in het blauwe gedeelte) Dus wat gebeurt er er worden cellen verwijderd. Meestal aan de onderkant van een blok. Door en regel in een blok naar beneden te slepen komt dat weer goed. Het verplaatsen van een heel blok is ook in deze opzet geen probleem. In de allereerste bijlage was het kopiëren van de formules ook gebaseerd op index en vergelijken. Maar er wordt ook gesleept met de blauw cellen en/of personen en dan gaat het mis. De waarde van de gele cellen zijn gekoppeld aan die van de blauwe dus het vergelijken gaat dan niet meer op. Bv men sleept G22 naar Q22 en Q22 naar G22 dan krijgen we hele andere waardes te zien. Ook als we personen verplaatsen dmv slepen.

Vandaar dat ik zocht naar een andere oplossing.
 
Laatst bewerkt:
Tegen onsystematisch werken is geen kruid gewassen.
In een blok cellen leeglaten is geen enkel probleem; daarvoor hoef je noch formules, noch codes aan te passen.
 
Je hebt helemaal gelijk. :d

Er werken veel mensen met dit bestand en sommige nemen het niet zo nauw. Die kiezen voor de weg van de minste weerstand.
 
In aanvulling op de post van snb #12:

Gerard,

Een 'gekke' gedachte:

Pak een blanco A4
Schrijf bovenin: wat is het doel c.q. wat voor output wil ik uiteindelijk bereiken en voor wie is die bestemd?
Dit is cruciaal!
Grote streep eronder.

Kijk eens of je de volgende punten kunt beantwoorden (desnoods nog niet 100% volledig)
- waar komt input vandaan? Uit een DBase of kan Jan en Alleman de input wijzigen? Blad Voorwaarde.
- wat moeten/mogen 'gebruikers' kunnen wijzigen? Alleen Blad 3?
- zijn er gebruikers die je 'beperkte' rechten wil geven? A is beheerder en kan alles. B mag wel ABC wijzigen maar niet XYZ. C mag wel XYZ wijzigen maar niet ABC.
- allen kunnen uiteraard wel 'lezen'.
- ik kan mij indenken dat het management alleen het eindresultaat wil hebben middels een PDF.

Vragenlijstje is eerste opzet.

Als Jan en Alleman kan wijzigen is mijn advies: stop, wordt nooit wat.
Je kunt nimmer alle fratsen die gebruikers kunnen bedenken voor zijn!

Groeten
 
Aanvullend: organisatie is het beperken/uitsluiten van mogelijkheden om consistentie/efficiëntie/voorspelbaarheid te vergroten.
 
Beste Trainers.
Met grote verbazing heb ik kennis genomen van jouw commentaar #14. Ik vind het inderdaad een hele “gekke” gedachte. in mijn optiek een stuk tekst vol met suggesties en aannames. Ik denk dat ik, nee ik weet het heel zeker dat ik alle vragen kan beantwoorden.
Ik weet wat het uiteindelijke doel is. Hier heb ik over nagedacht. Dus een blanco A4 heb ik zeker gepakt. En een idee uitgewerkt.

Je vraagt of ik een aantal punten kan beantwoorden en het antwoord hierop is JA.
Ik weet waar de input vandaan komt. En nee Jan en Alleman kunnen de input niet wijzigen.
Gebruikers kunnen in het voorwaarde blad de gegevens niet wijzigen. Dat kan alleen de beheerder. Wat ze wel kunnen wijzigen is de opzet in Blad3. Er zijn geen gebruikers met bepaalde rechten. De meeste rechten heb ik zelf

Je zegt dat je je kan indenken dat het management alleen het eindresultaat wil hebben middels een PDF. Wie heeft het hier over management. Wellicht behoor ik zelf tot het management. Misschien is deze sheet voor een vereniging. Misschien is de sheet hobbymatig bedoeld of voor een groenteboer, een slager, een drogist, een franchisenemer, wellicht voor een winkelketen of wat dan ook. Voor jou een onbekende factor voor mij een weet.

Wat mij het meest stoort is dat ik de indruk krijg dat de oplossing die Harry (HSV) heeft aangedragen door jou in twijfel wordt getrokken. Alsof dit niet is toegestaan. Een oplossing in VBA. Dat alles via formules moet worden opgelost. Ik was op zoek naar een oplossing in VBA omdat gebruikers nu eenmaal dingen doen die kunnen. Hier bedoel ik o.a. het slepen van cellen in Excel. Waarom kan dit eigenlijk binnen Excel? Waarom staat Microsoft dit toe?
Kan jij mij hier een antwoord op geven?

Ik hoop dat je beseft dat het bijgevoegde bestand niet het werkelijke bestand is maar een onderdeel van een groter geheel wat ik momenteel verder aan het ontwikkelen ben. Ik ben op de hoogte van cel beveiliging. Ik ben op de hoogte van het verbergen van tabbladen. Ik ben op de hoogte van het beveiligen van projecteigenschappen en nog veel meer dingen die het voor een ander “onmogelijk” maakt om dingen te wijzigen en/of veranderen. Ik denk dat je net zo goed als ik weet dat beveiliging van Excel sheets niet de meest betrouwbare is.

Waar het op neer komt is dat mijn vraag of er iemand was die mij kon helpen met het omzetten van index en vergelijken in een VBA omgeving is beantwoord. En ja Harry heeft mij een mooie oplossing geboden. Een hele mooie…… Misschien was de melding dat heel veel mensen hier mee gaan werken wat overtrokken maar het zijn er wel een aantal.
Ik hoop dat ik nog een hoop vragen binnen dit forum mag stellen en dat mij de helpende hand wordt geboden. Dit omdat ik zelf helaas niet de kennis bezit om bepaalde dingen zelf op te lossen. Waarschijnlijk ben ik een alfa mens.

ik wil nogmaals mijn dank uitspreken voor eenieder die mij in het verleden heeft geholpen en die dit hopelijk ook nog in de toekomst zullen doen.

En een antwoord op je opmerking;
Als Jan en Alleman kan wijzigen is mijn advies: stop, wordt nooit wat.
Je kunt nimmer alle fratsen die gebruikers kunnen bedenken voor zijn!

Als een kind bij de eerste keer dat hij/zij op zijn/haar fietsje zit en op zijn/haar bekkie gaat dan stoppen we er maar mee. Ze zullen te allen tijde fratsen blijven uithalen. Dus we trekken de stekker eruit. Het wordt toch nooit wat.


Ik heb dit niet uit rancune geschreven maar meer om het feit dat ik de indruk krijg dat mij de les wordt gelezen. Dit is in mijn optiek niet de bedoeling van een forum.

En nogmaals Harry bedankt.


:thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan