Help!

Problemen met uw pc? De vrijwilligers van Oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Hulp bij posten

Recent

Auteur Topic: Voorwaardelijke opmaak per rij met verschillende codes  (gelezen 3060 keer)

0 leden en 1 gast bekijken dit topic.

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 132
  • Geslacht: Man
  • Oplossing.be
Voorwaardelijke opmaak per rij met verschillende codes
« Gepost op: 27 juli 2019, 18:41:19 »
Goeiedag,

Ik probeer wat te experimenteren met voorwaardelijke opmaak per rij via VBA op verschillende tabbladen.

Deze zijn van Dotchie & SNB (waarvoor dank  :thumbsup:)

De VBA van Dotchie heb ik kunnen aanpassen op een grotere tabel "Test van Dotchie"

De VBA van SNB heb ik niet kunnen aanpassen op een grotere tabel "Test van SNB"

1) Is dit mogelijk om op het tabblad "Test van SNB" de VBA ook aan te passen ?
2) Kan er dan ook wat uitleg bij om deze code ook te begrijpen ? (Code van Dotchie heb ik kunnen aanpassen  :))
3) kunnen we enkel de laagste en de hoogste kleuren (zodoende minder een kleurboek) of kunnen 3 kleuren ? Laagste, gemiddelde, hoogste ?

Alvast bedankt

Nogmaals dank voor de reeds verkregen codes  :)  :thumbsup:


Offline emields

  • Volledig lid
  • **
  • Berichten: 124
  • Geslacht: Man
  • Oplossing.be
Re: Voorwaardelijke opmaak per rij met verschillende codes
« Reactie #1 Gepost op: 28 juli 2019, 14:28:47 »
Dat is geen voorwaardelijke opmaak maar gewoon cellen kleuren.

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 132
  • Geslacht: Man
  • Oplossing.be
Re: Voorwaardelijke opmaak per rij met verschillende codes
« Reactie #2 Gepost op: 29 juli 2019, 06:40:48 »
Dag emields

Er waren koppelingen naar een ander bestand, sorry niet gezien.

Er is een code per blad, enkel "Dotchie" en" test dotchie" werken, de andere 2 niet

Groeten
Georgyboy

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.859
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Voorwaardelijke opmaak per rij met verschillende codes
« Reactie #3 Gepost op: 29 juli 2019, 22:48:06 »
Hier doe ik een poging met wat uitleg bij de procedure van SNB...
Sub M_snb()
   sn = Blad2.Cells(3, 1).CurrentRegion.Resize(14, 29)  ' bepaal de grootte van je tabel en zet 'm in het werkgeheugen
   
   For j = 6 To UBound(sn) - 1  ' doorloop de tabel in het geheugen vanaf regel 6 tot aan het einde
      sp = Application.Index(sn, j)  ' haal 1 regel los uit de tabel om de hoogste en laagste te kunnen zoeken
      c00 = c00 & "," & Chr(Application.Match(Application.Max(sp), sp, 0) + 64) & j   ' bepaal de hoogste van de regel en zoek in welke kolom die staat; maak daar een kolom letter van en voeg het regelnummer toe; plak alle cel adressen in een string
      c01 = c01 & "," & Chr(Application.Match(Application.Min(sp), sp, 0) + 64) & j   ' bepaal de laagste van de regel en zoek in welke kolom die staat; maak daar een kolom letter van en voeg het regelnummer toe; plak alle cel adressen in een string
   Next
   
   Range(Mid(c00, 2)).Interior.Color = vbRed  ' zet de aangemaakte string in een Range-object en kleur vervolgens alle cellen rood
   Range(Mid(c01, 2)).Interior.Color = vbGreen  ' zet de aangemaakte string in een Range-object en kleur vervolgens alle cellen groen
End Sub
Edoch desalniettemin... Je gaat deze procedure bij jou niet aan het werk krijgen omdat:

  • de celopmaak van de getallen als currency is en VBA daar op deze manier z'n nek over breekt (als je er gewone getallen van maakt, gaat het al beter)
  • de tabel veel te groot is. Hierdoor worden de strings c00 en c01 die gevuld worden met celadressen, veel te groot om te passen in het Range-object
  • ik de laatste regel met de groene kleur niet aan de praat kon krijgen door een voor mij nog onbekende reden.
  • in de lus bij het bepalen van de regel er op de een of andere manier "2" wordt opgeteld bij de variabele "J" >>> geeft fout resultaat

Om 'm te testen kan je de dimensie van de geheugentabel een beetje aanpassen. Dus van
Citaat
sn = Blad2.Cells(3, 1).CurrentRegion.Resize(, 29)
naar
Citaat
sn = Blad2.Cells(3, 1).CurrentRegion.Resize(14, 29)

Snb maakt héle mooie procedures, maar zijn heel slecht te lezen als je niet over de nodige kennis beschikt. Dat kan onderhoud lastig maken. Dus als de procedure van Dotchie voor je werkt, moet je lekker die blijven gebruiken. ;)
« Laatst bewerkt op: 30 juli 2019, 06:30:59 door RedHead »
______________________________

Groet, Leo

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 132
  • Geslacht: Man
  • Oplossing.be
Re: Voorwaardelijke opmaak per rij met verschillende codes
« Reactie #4 Gepost op: 30 juli 2019, 07:45:13 »
Hey Leo,

Hartelijk dank voor je tijd en info, fantastisch  :thumbsup:

Probeer dit te begrijpen om zo weer met heel kleine stapjes meer kennis op te doen, grotendeels door jullie  :thumbsup:

Groetjes,
Georgyboy

 


www.combell.com