Ongelman kuvaus esimerkin valossa:
Minulla on nimilista soluissa A50-100, josta olen tehnyt alaspudotusvalikon
Tietojen kelpoisuuden tarkistuksella soluun A1, josta olen sen kopioinut useaan sataan soluun riveille 1-40.
Nyt olisi tarve lisätä muutama nimi listaan, eli soluihin A101-102. Tuo onnistuu vielä helposti, vain lisäämällä nimet listaan.
Mutta: Miten saan lisättyä kaikkiin Tietojen kelpoisuuden tarkistussoluihin (useita satoja) nuo nimet kätevästi yhdellä kertaa, ettei tarvitsisi yksitellen lisätä?
Tarkennuksena vielä, että hiirellä maalaamalla ja kopioimalla ei onnistu enää kätevästi, koska tuolla Tietojen kelpoisuuden tarkistusalueella on muutakin matskua välissä olevissa soluissa.
Tietojen kelpoisuuden tarkistus -ongelma
8
475
Vastaukset
tavalliseen moduuliin...
Sub testi()
Dim Solu As Range
On Error Resume Next
For Each Solu In Cells.SpecialCells(xlCellTypeAllValidation)
If Solu.Validation.Formula1 = "=$A$50:$A$100" Then
With Solu.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$A$50:$A$102"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
Next
On Error GoTo 0
End Sub
Keep EXCELing
@Kunde- nimenantaja
Anna tuolle uudelle alueelle (A50:A102) nimi, vaikka "nimilista". Valitse solu josta kopioit kelpoisuustarkistuksen muihin soluihin ja avaa Kelpoisuustarkistus. Kirjoita Lähde-ruutuun =nimilista ja ruksaa sitten kohta "Tee nämä muutokset kaikkiin soluihin, joissa on samat asetukset" ja OK. Uusi nimilista löytyy nyt kaikista soluista joissa on kelpoisuustarkistus.
- nimenantaja
Jäi vielä tuossa mainitsematta, että jos tulee taas tarvetta lisätä uusia nimiä listaan, niin menet vain Kaavat-välilehdelle ja valitse sieltä "Nimien hallinta" ja valitse "nimilista" ja muuta sieltä alhaalta "Viittaa"-kohtaan uusi solualue.
- Kelpo-lisääjä
Kiitos "Kunde" ja "nimenantaja", sain ongelmaani ratkaisun "Tee nämä muutokset kaikkiin soluihin, joissa on samat asetukset" -muutoksen kautta.
Kunde, rupesi kiinnostamaan -siksi kysynkin, tuoko VB -koodi tähän ongelmaani erilaista ratkaisua, mikä ei selviä kuin vasta kokeilemalla koodiasi? Voisi olettaa, kun näit ilmeisesti kuitenkin vaivaa vääntää tuollaisen koodin. :) No ei tossa kauan aikaa mennyt
Mutta ei nyt mitään merkittävää etua, koska toi nimenantajan vinkki toimii hyvin, koska sulla oli se solu, josta kopioit sen muihin. Jäi huomioimatta mulla ;-)
Muuten koodini olisi ihan ehdoton.
tossa testataan muutettava kelpoisuusehto
If Solu.Validation.Formula1 = "=$A$50:$A$100"
ja tossa muutetaan uusi ehto
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$A$50:$A$102"
ja lopuissa sitten voi tehdä ilmoituksiin muutoksia
Vielä helpommalla pääset kun teet jatkossa listasi dynaamiseksi siirtymä(offset) funktiolla ja silloin ei tarvitse muuta, kuin lisäillä tai poistaa nimiä luettelosta ja toimii automaattisesti...
Keep EXCELing
@Kunde- Kelpo-lisääjä
Jep, hyvät vaihtoehdot on aina tervetulleita. Tarve nimien lisäämiselle tai poistamiselle on niin minimaalista ja harvinaista, että taidan pysyä tässä "nimenantajan" ohjeessa, kun sen nyt osaan tehdä. ;D
- nimenantaja
Vaikka sinulla ei olekaan tarvetta enää lisätä uusia nimiä, kaiketi, niin tuo Kunden mainitsema dynaaminen lista on hyvä konsti automaattisesti muuttaa nimilista-aluetta SIIRTYMÄ-funktiolla. Tässä esimerkki. Kirjoita siihen "alkuperäisen" solun "Kelpoisuustarkistus"-lomakkeeseen Lähde-kohtaan kaava:
=SIIRTYMÄ(Taul1!$A$50;0;0;LASKE.A(Taul1!$A$50:$A$200);1)
ja ruksaa se kohta "Tee nämä muutokset..."
Nyt nimilista "toimii" alueella A50:A200 automaattisesti. Voit lisätä/poistaa nimiä listasta ja kaikki löytyy aina jokaisesta "Kelpoisuustarkistus"-solusta.
Tämän saman kaavan voi myös kirjoittaa Nimien hallinnassa "nimilistalle" Viittaa-kohtaan, jos käyttää tuota ensin mainitsemaani nimen antamista solualueelle. - Kelpo-lisääjä
Totta, tarve voi tulla milloin vaaan. Laitan tämän talteen myöhempiä kokeiluja varten.
Kiitos molemmille vinkistä!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Persut ja Tall poppy -syndrooma
Persut ovat uhranneet käytännössä koko elämänsä lannistaakseen tai sabotoidakseen yksilöitä, jotka erottuvat joukosta ky685204Orpo: Seuraavalla hallituksella ei ole yhtään enempää rahaa
Valtiovarainministeriön virka-arvion mukaan julkisen talouden sopeutuksen tarve on noin kymmenen miljardia euroa ensi va2614299Suomen kieli hiipuu vähitellen Vantaalla
nykytahdilla jo joka kolmas vantaalainen on vieraskielinen 2030-luvun alussa. Maahanmuutto, suomalaisten alhainen synty1003937Kun puolustusvoimat on huolissaan nuorison huonosta kunnosta
ajatellen varusmiespalvelusta(kun moni joutuu keskeyttään), niin johan tuli joku yliopiston vasemmistonainen selittään,1772316Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.331633Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar651371Tiesitkö? Kohutun L/over sarjan Juha eli Jani Volanen on tämän julkkisnaisen ex-mies!
Jani Volanen näyttelee L/over - ikuisesti minun psykologisessa trillerissä Juhaa. Mutta tiesitkö, että hän on tämän julk6999Ajattelen sinua
Ajattelen sinua joka päivä, joka hetki… Kaikkea, mitä minun olisi pitänyt sanoa sinulle, enkä osannut sanoa, kaikkea nii37943- 94899
entäs jos yhtenä päivänä kävisi niin
että miehet vaan yhtäkkiä kollektiivisesti kyllästyisivät ja lopettaisivat naisten palvelemisen ja naiset saisivat pärjä137877