Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] VBA - Meerdere cellen selecteren *

Pagina: 1
Acties:

  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Ik zou graag meedere cellen selecteren.

Bv. Range("D24:E24,D35:E35,D46:E46").Select

Nu zou ik dat graag willen doen via cells(x,y) zodat ik altijd ééntje kan opschuiven.
Maar als ik D24 vervang door cells(x,y), dan lukt het niet.
Iemand een oplossing?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
PRG >> OFF

Verder is mij niet duidelijk hoe je "D24" kunt vervangen door Cells noch waarom je per se .Cells zou willen gebruiken als de functionaliteit die jij wil hebben gewoon in de .Range zit :? En als iets niet lukt, zeg dan ook meteen wat er niet lukt. "Dan lukt het niet" is nou niet echt heel duidelijk als foutomschrijving/foutmelding.

[ Voor 20% gewijzigd door RobIII op 20-04-2009 10:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dan kick ik hem wel even over de schutting ;)
PRG >> OFF

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Hattrick: dan zet ik nog even Excel in de titel, aangenomen dat het niet over cellen in een Word-tabel gaat B)

Wat is lukt niet? <-- range(cells(1,1),cells(5,5)).select kan best. Maar is natuurlijk weinig nuttig want levert een aaneengesloten vierkant op.

Maar: als je wilt opschuiven kan je de Range() string manipuleren (natuurlijk wil je dan deelstrings gebruiken die je samenvoegt).

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

@ TS: wat bedoel je met 'opschuiven'? Zoals ik je bereik lees, selecteer je steeds een aantal regels (24, 35, 46) - bedoel je dat je deze wilt kunnen verschuiven naar 35, 36, en 47 etc.? In dat geval zou je immers ook met de eigenschap .Offset(x,y) kunnen werken, waarbij je x (row) steeds met één laat oplopen.

  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Excuseer.

Mijn bedoeling is:

Cel A3 tot B3 + A14 tot B14 + A 25 tot B25 .... selecteren.
( het hoeft niet perse die cijfers te zijn, maar er zitten steeds 11 rijen tussen)

Ik had geprobeerd met de VBA recorder, maar dan krijg ik iets in de aard van Range("A3:B3, A14:B14, ..;")
Ik wou dat dus variabel maken via cells(i,j), cells(i,j+1) en dan cells(i+11,j), cells(i+11,j+1)

Maar daar lukt het me niet hetzelfde resultaat (als met de recorder) te bekomen met cells(i,j) en om dus afzonderlijk die geslecteerde cellen te krijgen. Ik kan enkel een volledig vierkant geselecteerde cellen bekomen.

Verwijderd

Er zijn me nog steeds een aantal zaken niet duidelijk:

1) selecteer je altijd dezelfde range? Zo ja, dan is wat de macrorecorder opneemt voldoende;
2) indien je range kan variëren: selecteer je dan wel altijd hetzelfde aantal rijen? Zo ja, dan zou je kunnen denken aan het definiëren van een basisbereik, waarbij je middels de eigenschap .Offset(x,0) steeds een ander bereik selecteert met x als variabele (= aantal rijen naar beneden tov basisbereik).

[ Voor 25% gewijzigd door Verwijderd op 20-04-2009 11:36 ]


  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Ik wil altijd in dezelfde kolom blijven, stel A en B. en altijd 2 cellen selecteren

Maar ik wil een begincel kunnen aangeven, bv A3. En dan gaat hij automatisch A3 en B3 selecteren. PLUS (Dan 11 rijen naar beneden), A14 en B14 selecteren, PLUS A25 en B25. Op het einde heb je alle (6) cellen geselecteerd, in dit voorbeeld A3 en B3, A14 en B14 en A25 en B25.

Als ik dan een andere begincel ingeveel: bv A4, dan moet ie A4 en B4 selecteren plus A15 en B15 etc...

Verwijderd

Dan zou de oplossing die ik in punt 2 aandraag voor je moeten werken. Defineer bijv. basisbereik

Visual Basic .NET:
1
Set Basisbereik = Range("A1:B1,A12:B12,A23:B23")


...en ga vandaaruit middels .Offset naar het gewenste bereik toe:

Visual Basic .NET:
1
Basisbereik.Offset(x,0)


...waarbij x het aantal rijen naar beneden verschoven t.o.v. je basisbereik is. Wil je bijv. vanaf A4:B4 beginnen, dan x=3 etc.

[ Voor 71% gewijzigd door Verwijderd op 20-04-2009 11:59 ]


  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Bedankt voor de info!!!
Pagina: 1