- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Google Pixel topik
- Honor 400 Pro - gép a képben
- One mobilszolgáltatások
- Magisk
- Poco M3 - felújított állomás
- Honor Magic V2 - origami
- Xiaomi 12T Pro - kétszínű, mint a kétszázas
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Delila_1
veterán
válasz
tzimash #37680 üzenetére
Nem kellenek gombok, elég egy, a laphoz rendelt makró.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oszlop As Long, sor As Long, B, C, E, F, I
sor = Selection.Row
Range("A1").CurrentRegion.Interior.Color = xlNone
Range("A" & sor & ":I" & sor).Interior.Color = vbYellow
B = Cells(sor, "B")
C = Cells(sor, "C")
E = Cells(sor, "E")
F = Cells(sor, "F")
I = Cells(sor, "I")
MsgBox B & vbLf & C & vbLf & E & vbLf & F & vbLf & I
End SubAz üzenet (Msgbox) helyett műveleteket végezhetsz az aktív sor celláinak az értékével.
-
Fferi50
Topikgazda
válasz
tzimash #36445 üzenetére
Szia!
Ugye tudod, hogy a Public változókra úgy kell hivatkozni, hogy mindig megadod hozzá a modul nevét is.
Pl. Userform1.datum
Ha simán csak datum -ra hivatkozol, akkor a saját moduljában levő változónak értelmezi.
Ezért van az, hogy a Userformon belül "létezik", más modulban simán meghívva nem.Üdv.
-
Fferi50
Topikgazda
válasz
tzimash #36344 üzenetére
Szia!
A parancsgomb makrójába az elején írd be ezt a sort:
Application.EnableEvents=FalseAz utolsó sor pedig legyen ez:
Application.EnableEvents=True"Alapértelmezett értékként" lehet, jobb lenne a 0 vagy egy betű, amit mindenképpen meg kell változtatni. Hiszen ha 1 a beírt érték, amire azt írod, hogy legtöbbször azt kell beírni, akkor nem fog lefutni a makró.
Üdv.
-
Delila_1
veterán
válasz
tzimash #36335 üzenetére
A laphoz rendelve
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then CommandButton1_Click
End SubSzerk.:
A lap ScrollArea tulajdonságánál megadhatod a bejárható területet: $B$3:$E$3. Csak a 2 kiemelt cellában tud majd mozogni, mert a lapvédelemnél a zárolt cellák kijelölését nem engedélyezed.
A B3 bevitelnél a jobb-, az E3-nál a bal nyilat használd!
-
Fferi50
Topikgazda
válasz
tzimash #36331 üzenetére
Szia!
A gombot egérklikkel vagy a hozzárendelt makróval lehet működésbe hozni. Kurzort nem lehet úgy rátenni, hogy utána "benyomható" legyen.
A két fehér mező milyen módon jön létre? Két cella? Ha igen, akkor azt kell kitöltésnél előírni, hogy a második cella entere után egy egérklikk a gombra.
Makróval meg lehet tenni, hogy a második cella megváltozása esetén automatikusan induljon a gombhoz rendelt makró is - ilyenkor egy enter vagy a cellát más módon megváltoztatva a változtatás is elég. A munkalap change eseményéhez kell rendelni a makrót, ami "benyomja" a gombot.Üdv.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
tzimash #34065 üzenetére
Hol vannak a data lapon az adatok, ahol keresni kell?
Hova másolja a talált számokat?Mi az a választható "SMT 13"?
Kicsit részletesebb magyarázat kellene erre: "a megadott sor-nak a száma 1-13 lehet, ez kitöltetlen nem maradhat." Befolyásolja ez a keresést, vagy csak kötelező legyen kiválasztani egy értéket? -
Fferi50
Topikgazda
válasz
tzimash #32929 üzenetére
Szia!
Én maradnék a saját javaslatomnál:
Dim hiba As Range
Set hiba = Range("E:E").Find(what:="#", LookIn:=xlValues, lookat:=xlPart)
If Not hiba Is Nothing Then MsgBox "Az első hibás adat az " & hiba.Row & ". sorban van" & vbLf & "az A" & hiba.Row & " cella értéke: " & hiba.Offset(0, -4).Value: Exit SubÜdv.
-
Fferi50
Topikgazda
válasz
tzimash #32925 üzenetére
Szia!
Többféle út is járható
Dim hiba As Range
Set hiba = Range("E:E").Find(what:="#", LookIn:=xlValues, lookat:=xlPart)
If Not hiba Is Nothing Then MsgBox "Hiányosak az adatok, a program befejeződik!": Exit Sub
vagydim hibas as integer
hibas = Application.CountIf(E:E, CVErr(2042))
if hibas>0 then stb.A kilépést magad is el tudod intézni, csak 1 mintát írtam.
Üdv.
-
Fferi50
Topikgazda
válasz
tzimash #32891 üzenetére
Szia!
Minden MsgBox üzenet esetén kell OK vagy más gombot nyomnia a felhasználónak, nem csak a program végén :-(
Miért nem jó neked az állapotsor ott a képernyő alján? Ott nem kell a felhasználónak semmit csinálnia, csak nézni, mint boci...
Az elején pedig írhatsz egy MsgBoxot neki, hogy lesse az alsó sort, ha kíváncsi (ha nem).
Én hosszú folyamatoknál itt szoktam pörgetni a számlálót, hogy x tétel,cella van feldolgozva y darabból és általában 100-asával változtatom (mert különben nem látsz semmit a pörgéstől). Irtó kellemetlen lenne a felhasználónak, ha pár másodpercenként nyomkodnia kellene az entereket (mert "túl gyors" a program).
Szerintem akkor van értelme MsgBox-nak, ha a felhasználó döntésétől is függ, hogy mit csinálsz tovább, pl. nincs meg minden adat, de szeretne hiányos adatokkal is továbbmenni stb., illetve ha valami szokatlan történt és hibáról kell tájékoztatni.Üdv.
-
Fferi50
Topikgazda
válasz
tzimash #32889 üzenetére
Szia!
Az MsgBox nem tűnik el addig, amíg a felhasználó rá nem kattint az OK gombra.
Az állapotsor felhasználható a folyamatok jelzésére:
Application.Statusbar="Most itt járok:" & "éppen indexelek"
A makró végén pedig Application.Statusbar=False - visszaadja a vezérlést az Excelnek (ez utóbbit ne felejtsd ki, mert egyébként az állapotsoron ott marad, amit legutoljára kiírattál.
Az állapotsorba rajzkarakterket is tehetsz, színt viszont nem.Lehet még olyan megoldás is, hogy egy userformot hozol létre, amire az üzeneteket kíírod egy Labelba, majd a Userform1.Show false paraméterrel hívod meg - ekkor a makró fut tovább, a form pedig addig lesz kinn, amíg az Unload Userform1 sort be nem írod, vagy a felhasználó "ki nem x-eli".
Az üzeneteket menet közben változtathatod, amíg a form kint van, pl. Userform1.Label1.Caption="Most más szöveg jön".
Ide rajzos karaktereket is tehetsz és színezheted is. De azért nem árt sokat gyakorolni, mielőtt ráereszted a felhasználóra.Üdv.
-
Delila_1
veterán
válasz
tzimash #31353 üzenetére
Szívesen.
Nézd meg a nyilak, és a lakás rajzok megnevezéseit! Azokat kell a saját fájlodban jól megadni.
Tedd modulba a lenti két makrót.
Sub Osszes()
Sheets("Munka1").DrawingObjects.Visible = True
End Sub
Sub EgySem()
Sheets("Munka1").DrawingObjects.Visible = False
Sheets("Munka1").DrawingObjects("Lakás").Visible = True
End Sub -
szatocs1981
aktív tag
válasz
tzimash #28399 üzenetére
Na, csak megvan:
If InStr(Cells(sor, "C"), "VBS/BS ") > 0 And Cells(sor, "F").Value = 8960 And Cells(sor, "D").Value = "J" And not (Cells(sor, "B").Value = 2381273 Or Cells(sor, "B").Value = 2381389 Or Cells(sor, "B").Value = 2587841 Or Cells(sor, "B").Value = 2437821 Or Cells(sor, "B").Value = 2531518 Or Cells(sor, "B").Value = 2417707 Or Cells(sor, "B").Value = 2832690) Then
-
Delila_1
veterán
válasz
tzimash #28399 üzenetére
Sub mm()
Dim sor As Long, usor As Long, ertek
usor = Range("B" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
ertek = Cells(sor, "B")
If Not InStr(Cells(sor, "C"), "VBS/BS ") > 0 And _
Cells(sor, "F") = 8960 And Cells(sor, "D") = "J" _
And Not (ertek = 2381273 Or ertek = 2381389 Or ertek = 2587841 _
Or ertek = 2437821 Or ertek = 2531518 Or _
ertek = 2417707 Or ertek = 2832690) Then
Rows(sor).Delete Shift:=xlUp
End If
Next
End Sub -
Delila_1
veterán
válasz
tzimash #28319 üzenetére
Másold át a fejlécet egy új lapra.
Használd az autoszűrőt az eredeti lapon. Megadhatod, hogy azok a sorok legyen láthatóak, amelyek tartalmazzák a J karaktert. Ezeket a teljes sorokat kijelölöd, Ctrl+c-vel másolod, az új lap A2 cellájába Ctrl+v-vel beilleszted.
Marad a kijelölés az első lapon, ezeket a sorokat törlöd.
-
DasBoot
aktív tag
Új hozzászólás Aktív témák
Hirdetés
- Sea of Thieves Premium Edition és Egyéb Játékkulcsok.
- Antivírus szoftverek, VPN
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- ÁRGARANCIA!Épített KomPhone i5 13400F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- 0% THM 3 havi részlet! Beszámítás, 27% áfa, Sapphire Nitro+ RX 9070XT 16GB készletről
- Felújított számítógépek/merevlemezek Számlával, garanciával! Ingyen Foxpost!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged