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

In een zelf geselecteerde range, X zetten in bepaalde cellen

Status
Niet open voor verdere reacties.

lento

Gebruiker
Lid geworden
22 mrt 2017
Berichten
17
Hallo,

Ik ben al een tijdje bezig met dit programma, maar ik geraak geen stap verder. De bedoeling is om een macro te maken die vraagt naar het aantal kruisjes dat gezet moet worden. Als men een getal invult, vraagt ik naar de range. Die moet men dan zelf selecteren. Als de range geselecteerd is wil ik dat er kruisjes gezet worden. Maar niet in alle cellen. Ik wil kruisjes die beginnen in de eerste cel (linksboven) van de range en dan om de 5 cellen een kruisje. Dit enkel binnen de geselecteerde range. Als de range niet lang genoeg is, dan gaat die links(begin van de range), 2 cellen naar rechts en 5 cellen eronder verder tot alle kruisjes gezet zijn. Als de range te klein zou zijn en niet alle kruisjes gezet kunnen worden komt er een melding : "range te klein".
Wie kan mij hiermee verder helpen ?
Groeten,
Sebastiaan~
 
Help de helpers even aan een voorbeeld in een Excel-bijlage met wat voorbeeld van bereiken met daarin kruisjes gezet. Want zoals ik het nu voor me zie, staat er op de eerste regel slechts 1 kruisje terwijl op alle volgende regels meerdere kruisjes kunnen voor komen?
 
Tnx. Waarom ga je op regel 11 weer in de eerste kolom beginnen met een kruisje? Is het dus steeds zo om en om? Dus eerste is links, tweede is inspringen, derde is links, vierde is inspringen, enzovoorts?
 
De echte bedoeling voor dit programma is coördinaten van gaten doorsturen. Het inspringen is idd zoals je zegt eerste links, 2de inspringen, derde links dan weer inspringen enzoverder. Dit is bedoeld zodat de gaten niet onder mekaar staan, maar schuin van mekaar ( Dit bespaart plaats).
 
Bedoel je zoiets?
Dit dan verwerken in de Range?

Denk dat ik het niet echt snap.
 

Bijlagen

  • Coordinaten.jpg
    Coordinaten.jpg
    124,2 KB · Weergaven: 76
Neen dit is het niet. Ik heb een visueel beeld nodig van waar de gaten liggen.
De bedoeling is dat iemand zegt : ik wil x aantal gaten binnen dit stuk. Het stukje selecteer je via de range en in deze range komen dan kruisjes op de plaats van het gat. In mijn geval moeten ze om de 5 cellen liggen op dezelfde rij. Als ze niet op de passen (Je range is bv 14 cellen, maar je wil 4gaten) dan plaats je een kruisjes in cel 1, eentje in cel 5, en eentje in cel 10. De 4de zou op 15 liggen, maar aangezien mijn range niet lang genoeg is moet ik zakken. Dus 5 cellen omlaag en 2 naar rechts vanaf het beginpunt en dan ga je weer verder tot ze er allemaal op liggen.
Ik denk dat ik het topic ook verkeerd geplaatst heb. Dit zou met een macro moeten gebeuren en dus bij VBA staan
 
Lento, nee hoor, je hebt het juiste forum op deze site gevonden. Wij Excellers kunnen alles aan.... Ha ha ha
ALS we maar precies weten WAT er moet gebeuren. ;)

Even jouw voorbeeld vasthouden... Als de vierde in cel 15 zou moeten komen, wáárom dan niet in kolom B (= tweede cel van een nieuwe regel) 5 regels lager? DAN loopt het schema pas écht door...
 
Dat komt omdat die gaten elkaar dan zouden overlappen. Wat jij zegt gaat, maar dan zou het in kolom C moeten zijn.
Goed dat jullie alles aankunnen :p
Sorry voor de 'slechte' uitleg, maar het is vrij moeilijk om uit te leggen xD
 
Mooie toevoeging hoor. Ik heb nu ff geen tijd om hier in te duiken (ben aan 't werk), maar zal vanavond ff kijken als je nog niet een sluitende oplossing hebt.
 
Super bedankt !
Ik ga ook nog blijven zoeken. Als ik het vind hoor je het
 
Het is maar een idee.

Denk dat je het zo bedoel maar zoals ik het gedaan heb zal het wel veel werk zijn.
Misschien heeft een specialist een veel beter idee.
 

Bijlagen

  • Voorbeeld2_1.xlsm
    23,4 KB · Weergaven: 40
Bedankt, maar dit is het niet aangezien ook de range variabel is. De bedoeling is eerst vragen naar het aantal gaten, en dan naar de range( die je dan selecteert via een inputbox).
 
maar zal vanavond ff kijken

Zonder het gras voor de voeten te maaien ook een opzetje gemaakt wat volgens mij eenvoudiger moet kunnen.;)

Code:
Sub VenA()
  Dim r As Range, j As Long, jj As Long, i As Long, t As Long, ar
  On Error GoTo foutje
  t = InputBox("aantal")
  Set r = Application.InputBox("range", "range", , , , , , 8)
  r.ClearContents
  ar = r
  
  Do Until i + 1 > t
    For jj = 1 To UBound(ar, 2) Step 5
      If i + 1 > t Then Exit For
        If (j + 1) Mod 2 = 1 Then
          i = i + 1
          ar(j + 1, jj) = "X"
         Else
          If jj + 2 <= UBound(ar, 2) Then
            i = i + 1
            ar(j + 1, jj + 2) = "X"
          End If
        End If
    Next jj
    j = j + 5
  Loop
  r = ar
  Exit Sub
foutje:
MsgBox "foutje"
End Sub
 

Bijlagen

  • voorbeeld2-1.xlsb
    17 KB · Weergaven: 48
Zonder het gras voor de voeten te maaien ook een opzetje gemaakt wat volgens mij eenvoudiger moet kunnen.;)

Ik zeg "mooi stukkie werk" V&A. En dat gras groeit vanzelf wel weer. :D
De grap is dat ik de vraag vanochtend zag en iets had van "appeltje eitje". Maar dat viel me zwaar tegen omdat die inspringing er bij zit. Ben blij dus dat jij 'm zo voortvarend hebt weten af te ronden. :thumb:
 
het te selecteren gebied moet altijd beginnen in A1:

Dan kan het met:

Code:
Sub M_snb()
  [Z1] = InputBox("aantal")
  Application.InputBox("range", "range", , , , , , 8).Name = "snb"
   
  [snb] = [if((((mod(row(snb),10)=1)*(mod(column(snb),5)=1)+(mod(row(snb),10)=6)*(mod(column(snb),5)=3))=1)*((columns(snb)*(int(row(snb)/5))+column(snb))/5<Z1),"x","")]
End Sub
 
Misschien nog 1 vraagje : Wat als ik nu bijvoorbeeld ipv van 5 cellen naar rechts en 2 naar onder, 6 cellen naar rechts en 3 naar onder wil. Wat moet ik dan veranderen in jou code ?
Om eerlijk te zijn snap ik niet echt wat er gebeurd in jou code :) Heb niet veel ervaring met VBA en snap die Ubound niet
 
Ik zeg "mooi stukkie werk" V&A. En dat gras groeit vanzelf wel weer. :D
Dank je. Sinds kort hebben we een paar kippen en valt er geen gras meer te maaien:d

@snb, Hoe verzin je het?:thumb:

@lento, De uitleg over Ubound en nog veel meer kan je vinden als je op het eerste linkje in de handtekening van snb klikt.

Heel simpel gesteld geeft Ubound(ar) de laatste rij en Ubound(ar,2) de laatste kolom in een Array.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan