Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Apple MacBook
- Milyen notebookot vegyek?
- Vezetékes FEJhallgatók
- OLED monitor topic
- ASUS ROG Ally
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Apple asztali gépek
-
PROHARDVER!
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
-
PistiSan
addikt
válasz
Mittu88 #21868 üzenetére
Olyan 300 oszlopom van, kb 80-100 cellányi tartalommal.
Az oszlopon belül van jó néhány cella ami üres, ezért az CTRL+SHIFT Nyil problémás.Rögzítettem egy excel makrót, így néz most ki.
Sub Makró7()
'
' Makró7 Makró
'
'
Columns("P:P").Select
ActiveSheet.Range("$P$1:$P$101").RemoveDuplicates Columns:=1, Header:=xlNo
End SubHa átírom a "P" oszlopot mondjuk Q-ra, akkor szépen lefut ott is, de ez elég macerás, azt gondolnám hogy valami módon lehet egy változót megadni, ami mondjuk "LH"-ig megcsinálja ezt helyettem.
Tök jó volna, ha több oszlopot kijelölve is eltávolítaná az ismétlődéseket, de sajnos nem teszi.
-
Mittu88
senior tag
válasz
Mittu88 #21782 üzenetére
Egy ilyennel nagyjából meg lehet, de hogy klikkelésre dobja a sorrendet, azt nem tudom hogy lehet makró nélkül. Ez perpill. akármilyen cellamódosítás hatására újragenerálja a véletlen számokat, kivéve, ha ki van véve excelből az automatikus újraszámolás (99,9%-nál nincs kivéve).
-
Delila_1
veterán
válasz
Mittu88 #20049 üzenetére
Másik megoldás, ahol a ciklust elfelejthetjük:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WF As WorksheetFunction
Set WF = Application.WorksheetFunction
Sheets("Munka1").Activate
If WF.CountA(Range("B12:B50")) < 39 Then
MsgBox "Adatok hiányoznak a B12:B50 tartományból", vbOKOnly + vbExclamation
Cancel = True
Else
If WF.CountA(Range("D12:D50")) < 39 Then
MsgBox "Ejnye-bejnye!", vbOKOnly + vbExclamation
Cancel = True
Exit Sub
End If
End If
End Sub -
Mutt
senior tag
válasz
Mittu88 #20049 üzenetére
Hello,
Ezt használd az eseményben
Dim cbHiba As Boolean
Dim rngAdatsor As Range
Dim cella As Range
Set rngAdatsor = Worksheets("Igénylő").Range("B12:B15")
cbHiba = False
For Each cella In rngAdatsor
'ha a cella nem üres, akkor 4-el jobbra tőle is megnézzük a cellát
If Len(cella) > 0 Then
If Len(cella.Offset(, 4)) = 0 Then
'ha nincs kitöltve, akkor kilépünk
cbHiba = True
Exit For
End If
End If
Next cella
If cbHiba Then
MsgBox ("Add meg a fogadóállást a " & cella.Offset(, 4).Address & " cellában!")
Cancel = True
End Ifüdv
-
Mittu88
senior tag
válasz
Mittu88 #19542 üzenetére
Na jó, rájöttem, hogy így se lesz jó.
Az a k.. érvényesítés így se fogja elfogadni.
Szóval a lényeg az lenne:
Van egy költséghely lista, pl:
1000 üzem
2000 raktár
3000 központi irányítás
stb.A lényeg az lenne, hogy legördülő listával lehessen a költséghelyet kiválasztani, alatta egy másik cellában szintén legördülő listával az jelenjen meg, hogy azon a költséghelyen milyen nyomtatók vannak (ehhez is van adatbázis).
pl ha kiválasztja, hogy Üzem:
Epson xy
HP xy
...Ha átállítja raktárra:
Samsung xy
Konica Minolta xy
...és így tovább.
Ezt hogy lehet megoldani? Szerintem VBA-ban egyszerű lehet, de ahhoz nem értek annyira :/
Érvényesítéssel meg szűrővel szenvedek, de rossz végén állok a brének -
Mutt
senior tag
válasz
Mittu88 #19539 üzenetére
Hello,
Kiegészítheted a korábbi makrót ezzel a sorral.
Worksheets("masik lap").Columns("A:D").AutoFilter Field:=1, Criteria1:=Range(cella).Value
Így lefut a szűrés minden alkalommal.
A gond, hogy pont emiatt erőforrás pazarló, ezért egy kicsit lehet hangolni rajta:
Dim EredetiErtek
Const cella As String = "A2"
Private Sub Worksheet_Calculate()
'kikapcsoljuk az eseménykezelést, mivel a következősor újabb eseményt (change) indítana el
Application.EnableEvents = False
'értéket másolunk eggyel a keresett cella alá
Range(cella).Offset(1).Value = Range(cella).Value
'eseménykezelést visszakapcsoljuk
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'csak akkor engedjük futni a szűrést, ha változott a szűrési feltétel
If EredetiErtek <> Range(cella).Value Then
Worksheets("UDF").Columns("A:D").AutoFilter Field:=1, Criteria1:=Range(cella).Value
EredetiErtek = Range(cella).Value
End If
End Subüdv
Új hozzászólás Aktív témák
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Futás, futópályák
- AMD Navi Radeon™ RX 9xxx sorozat
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- EAFC 26
- Apple iPhone Air - almacsutka
- MasterDeeJay: Gigabyte GA-B350M-D2 - AM4 lap 2016-ból amikor még nem volt Ryzen!
- Lexus, Toyota topik
- Napelem
- Xbox Series X|S
- További aktív témák...
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Game Pass Ultimate előfizetések 4 - 19 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Antivírus szoftverek, VPN
- Assassin's Creed Shadows Collector's Edition PC
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Jawbone Up okoskarkötő, aktivitásmérő
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- BESZÁMÍTÁS! Intel Core i7 4790K 4mag 8szál processzor garanciával hibátlan működéssel
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700K / RTX 2060 6GB / 32GB DDR4 / 500 SSD
- Eredeti DELL 240W töltők (LA240PM160)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest