Tein koodin pätkän, joka vertaa samalla rivillä olevia numeroita yhteen lukuun. Jos jokin luku on yhtä suuri kuin verrattava luku, suorittaa excel tietyn toiminnon.
Nyt kun rivejä exceliin tulee ainakin 30, niin miten saisin kätevästi tämän toiminnon kaikille riveille, niin ettei minun tarvitse kirjoittaa jos-lauseketta joka rivistä erikseen Vba:han?
Vba
7
459
Vastaukset
hiukan ylimalkainen kyssäri , mutta rivit joilla vastine on saat kätevästi allaolevalla koodilla(vanha postaus tänne ). Siinä sitten vaan tsekkaat rivitiedon ja suoritat tarvittavan makron(ilmeisesti sama kaikilla?)
moduuliin...
Option Explicit
Sub Siirrä()
Dim Löydetty As Range
Dim solu As Range
Dim haku As Variant
On Error Resume Next
Application.ScreenUpdating = False
Worksheets("Sheet1").Activate
haku = 1
Set Löydetty = EtsiJaSiirrä(haku, Rows("1:30"))
For Each solu In Löydetty
'tähän makrotestaus soluosoitteen mukaan(rivi) ...
MsgBox solu.Row
Next
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Function EtsiJaSiirrä(Hakuehto As Variant, HakuAlue As Range) As Range
Dim solu As Range
Dim EkaOsoite As String
With HakuAlue
Set solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
Set EtsiJaSiirrä = solu
EkaOsoite = solu.Address
Do
Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solu)
Set solu = .FindNext(solu)
Loop While Not solu Is Nothing And solu.Address EkaOsoite
End If
End With
End Function- taas pulassa
Sorry, selitin huonosti.
Eli otetaan esimerkki, jossa A1=1, B1=2 ja C1=3.
Jos A1 tai B1 olisi 3, tulisi ruutuun varoitusteksti. Tämän osaan tehdä.
Eli soluja A ja B verrataan aina soluun C, joka rivillä solut A, B ja C saavat eri arvot.
Miten siis saan n. 30:lle riville kopioitua tämän toiminnon? kun ei viitsisi kirjoittaa 30 if lausetta, toisin sanoen 30 makroa. taas pulassa kirjoitti:
Sorry, selitin huonosti.
Eli otetaan esimerkki, jossa A1=1, B1=2 ja C1=3.
Jos A1 tai B1 olisi 3, tulisi ruutuun varoitusteksti. Tämän osaan tehdä.
Eli soluja A ja B verrataan aina soluun C, joka rivillä solut A, B ja C saavat eri arvot.
Miten siis saan n. 30:lle riville kopioitua tämän toiminnon? kun ei viitsisi kirjoittaa 30 if lausetta, toisin sanoen 30 makroa.eli onko tarkoitus tarkistella sarakkeisiin A tai B syötettäviä arvoja ja verrata saman rivin C sarakkeen arvoon ja jos A:han tai B:hen syötettävä arvo on saman rivin C sarakkeen solussa niin varoitus?
Jos näin niin vaihtoehtoja on...
mutta odotellaan tarkennusta ennen kuin vastataan- taas pulassa
kunde kirjoitti:
eli onko tarkoitus tarkistella sarakkeisiin A tai B syötettäviä arvoja ja verrata saman rivin C sarakkeen arvoon ja jos A:han tai B:hen syötettävä arvo on saman rivin C sarakkeen solussa niin varoitus?
Jos näin niin vaihtoehtoja on...
mutta odotellaan tarkennusta ennen kuin vastataanJuurikin tuosta on kysymys. Msgbox hypähtää silmille, jos joku arvoista on sama, mutta miten tämän saa toimimaan rivikohtaisesti, niin ettei minun tarvitse kirjoittaa if-lauseketta joka rivistä erikseen?
taas pulassa kirjoitti:
Juurikin tuosta on kysymys. Msgbox hypähtää silmille, jos joku arvoista on sama, mutta miten tämän saa toimimaan rivikohtaisesti, niin ettei minun tarvitse kirjoittaa if-lauseketta joka rivistä erikseen?
ko. TAULUKON moduuliin...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A:A")) Is Nothing Then
If Target = Target.Offset(0, 2) Then
MsgBox "Arvo ei kelvollinen!", vbInformation
Target = ""
Target.Select
End If
End If
If Not Intersect(Target, Columns("B:B")) Is Nothing Then
If Target = Target.Offset(0, 1) Then
MsgBox "Arvo ei kelvollinen!", vbInformation
Target = ""
Target.Select
End If
End If
End Sub
Keep Excelling
@Kunde- taas pulassa
kunde kirjoitti:
ko. TAULUKON moduuliin...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A:A")) Is Nothing Then
If Target = Target.Offset(0, 2) Then
MsgBox "Arvo ei kelvollinen!", vbInformation
Target = ""
Target.Select
End If
End If
If Not Intersect(Target, Columns("B:B")) Is Nothing Then
If Target = Target.Offset(0, 1) Then
MsgBox "Arvo ei kelvollinen!", vbInformation
Target = ""
Target.Select
End If
End If
End Sub
Keep Excelling
@KundeMitä nuo Offset arvot tarkoittavat? (0,2) ja (0,1)?
taas pulassa kirjoitti:
Mitä nuo Offset arvot tarkoittavat? (0,2) ja (0,1)?
If Target = Target.Offset(0, 2)
eli kun joku solu muuttuu taulukossa(=Target , tossa koodissani) niin aluksi siinä oli testaus onko kyseessä A sarakkeen solu, joka muuttuu ja jos oli, niin sitten verrataan sitä saman rivin C sarakkeen soluun
Target.Offset(0, 2) eli siirtymä 0 =sama rivi ja 2 =2 saraketta oikealle
rivit menee alaspäin ja - ylöspäin vastaavasti sarakkeet oikealle ja -vasemmalle.
elikä koodi aktivoituu kun taulukossa joku arvo muuttuu
ekaksi testataan oliko A sarakkeen solu ja jos oli niin onko arvo sama kuin C sarakkeessa ja jos oli niin ilmoitus
jälkimmäinen osa vastaavasti B sarakkeen soluille
Keep Excelling
@Kunde
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
SDP on vastuunkantaja, ja siksi suosituin kansan keskuudessa
Kiusaamiseenkin SDP puuttuu heti sellaisen tultua ilmi. Esimerkiksi persut lakaisevat nämä maton alle ja pahentavat site1256227Punavihreät puolueet haluavat Suomeen satoja tuhansia kehitysmaalaisia
SDP, vihreät ja vassarit haluavat nostaa esim. pakolaiskiintiötä todella paljon. Orpon hallituksen aikana maahanmuutto635151SDP:n johto pesi kätensä häirintäkohusta
"Suurimman oppositiopuolue SDP:n johto olisi todennäköisimmin halunnut vaieta puolueen ympärillä velloneen häirintäkohun724290SDP on selvästi paras valinta äänestyskopissa
Puolueella on arvomaailma kohdallaan, sillä on hyvä CV itsenäisen Suomen historiassa vastuunkantajana ja hyvinvointivalt1023864Miksei Korhonen (pers) vastaa Kokon (sd) esittämiin kysymyksiin?
Hyviin käytöstapoihin kuuluu kysymyksiin vastaaminen, eikä alkaa syyttelemään kysymyksen esittäjää. Mikä vaivaa Korhost133632Häirintäkohun keskellä olevalta kansanedustajalta Jani Kokolta (sd) rajua tekstiä somessa.
https://www.is.fi/politiikka/art-2000011772322.html Ajaakohan tämä SDP:n kansanedustaja Jani Kokko oikein täysillä valoi1213200SDP:n selitykset ontuu pahasti - "On käsitelty heti, mutta kukaan ei tiedä"
Kokoomuslaiset pistää taas demareita nippuun. Tuppuraisen mukaan mukaan SDP:n useat ahdistelutapaukset on käsitelty het522556Oletko nainen turhautunut, kun en tule juttelemaan siellä?
Haluaisin tottakai tulla. Älä käsitä väärin. Ehkä ensi kerralla?352509Kähmijä puolueen kannatus romahtamassa
Erityisesti naiset ovat suuttuneet SDP:lle kertoo asiantuntijat672252Nyt tuli Suomen somaleista todella ikävää faktaa
sillä osa somalivanhemmista lähettää lapsiaan kotimaahansa kurinpitolaitoksiin, joissa heitä pahoinpidellään. Illan MOT882245