- Magisk
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- Xiaomi 14T - nem baj, hogy nem Pro
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Honor Magic5 Pro - kamerák bűvöletében
- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Mobil flották
- Apple iPhone 16 Pro - rutinvizsga
-
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
bmenya #20677 üzenetére
Rögzíts egy makrót, ahol elrejted a sok sort.
A feltételes formázással csak a saját lap celláinak értékei szerint formázhatsz. Megteheted, hogy a formázandó lapra behivatkozod a kezd lap d2 celláját – =kezd!D2 –, és ennek alapján színezel. A színezendő cella képlete, ha a fenti hivatkozás például a P1-ben van, =P2=1.
-
Delila_1
veterán
válasz
kőbaltazár #20666 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
kőbaltazár #20664 üzenetére
=A1+90/60/24
-
Delila_1
veterán
Ezt tudtommal csak makró segítségével tudod megoldani.
A példámban az adatok az A1 cellában kezdődnek.
A középre rendezett cellák hátterét pirosra festi.Sub Kozepre()
Dim CV As Object
Range("A1").Select
Selection.CurrentRegion.Select
For Each CV In Selection
If Range(CV.Address).HorizontalAlignment = xlCenter Then _
Range(CV.Address).Interior.ColorIndex = 3
Next
End Sub -
Delila_1
veterán
Nem biztos, hogy jól értem.
Tehát megnyitsz egy füzetet. Az utolsó oszlop füzetenként máshol van, de mindig az utolsó mínusz 2. oszlopban vannak #N/A értékek, amik szerint a sorokat törölni akarod.Próbáld ezzel a makróval:
Sub HibasSorokTorlese()
Dim usor As Long, oszlop As Long, betu As String
usor = Range("B" & Rows.Count).End(xlUp).Row
oszlop = Range("A1").End(xlToRight).Column
'Utolsó oszlop-2 első sorába a hibákat tartalmazó oszlop betűjele
Cells(1, oszlop + 3) = "=CHAR(" & oszlop - 2 + 64 & ")"
betu = Cells(1, oszlop + 3)
'Autoszűrő kiterjesztése az utolsó oszlop+1 területre
Range(Cells(1, 1), Cells(1, oszlop)).Select
Selection.AutoFilter
Range(Cells(1, 1), Cells(1, oszlop + 1)).Select
Selection.AutoFilter
'Segédoszlopba fejléc
Cells(1, oszlop + 1) = "Hibák"
'Képlet a segédoszlopba
Range(Cells(2, oszlop + 1), Cells(usor, oszlop + 1)) = "=IF(ISERROR(" & betu & "2),1,0)"
'Autoszűrés a hibákat tartalmazó oszlop szerint
On Error GoTo Vege
ActiveSheet.Range(Cells(1), Cells(usor, oszlop + 1)).AutoFilter Field:=oszlop + 1, Criteria1:=1
'Látható sorok kijelölése és törlése
Range("C2:C" & usor).SpecialCells(xlCellTypeVisible).Select
Selection.Rows.Delete shift:=xlUp
Vege:
'Autoszűrő minden megmaradt sort mutasson
ActiveSheet.Range("A1:C" & usor).AutoFilter Field:=oszlop + 1
End Sub -
Delila_1
veterán
válasz
the radish #20614 üzenetére
Szívesen.
Mindenki elakad, még akkor is, mikor már azt gondolja, hogy jól belejött.
-
Delila_1
veterán
válasz
the radish #20612 üzenetére
Ahol a kiválasztott adatot a füzetedbe fel akarod írni, pl. egy gomb click eseményében.
A Cdate a lapon időértékké alakítja a kiválasztott szöveges értéket, és a füzetben már tudsz vele számolni. -
Delila_1
veterán
válasz
the radish #20610 üzenetére
A füzetben a tartomány, ahonnan a combobox választható értékeit megadod, szöveg formátumúak legyenek.
A mentés pedig sheets("Munka1").range("a1")=cdate(combobox1) -
Delila_1
veterán
válasz
the radish #20607 üzenetére
Miért van szükség erre a change eseményre? A választható adatokat – gondolom – a füzetedből kapja a combobox, és a megfelelő formában jelenik meg.
Csak akkor van értelme a change makródnak, ha nem a saját értékének a megváltoztatása van benne.
-
Delila_1
veterán
válasz
the radish #20602 üzenetére
Ha a textbox1-be bevitt értékkel a label2 és label5 értékét akarod megváltoztatni, akkor csak ezt a kettőt vidd be az afterupdate eseményébe.
-
Delila_1
veterán
válasz
Geryson #20603 üzenetére
...az A oszlopban nagyon sokszor 2-5-10 ismétlés is található, ezeket szeretném kitakarítani.
- Hogy oldható meg az, hogy ezeket jelölje nekem?A =DARABTELI($A:$A;$A2) képlet megadja, hányszor szerepel az A2 értéke az A oszlopban.
A feltételes formázás a képletét úgy kell érteni, hogy ha a beírt függvény értéke igaz, akkor... (formátum). Nyilván sok tételed van az A oszlopban, ami többször is szerepel, azért olyan szép színes a tartományod. -
Delila_1
veterán
válasz
the radish #20591 üzenetére
Szivi.
-
Delila_1
veterán
válasz
the radish #20589 üzenetére
A labelre írási részt tedd át a gomb Click eseményéből a textbox AfterUpdate eseményébe. A füzetbe írást viszont hagy a gombnál, mert a dátumon még módosíthatsz a gomb megnyomása előtt.
-
Delila_1
veterán
válasz
Geryson #20585 üzenetére
Nézd meg az A oszlopban az adataidat. Valószínű, hogy az A24 és A25 cellák tartalma nem azonos, csak annak látszik. Valamelyik a kettő közül tartalmaz egy szóközt, vagy egyéb, nem látható karaktert. A HOSSZ függvénnyel le tudod kérdezni az egyes cellák tartalmának a hosszát. Vagy: a cellán állva F2-re (szerkesztő üzemmód) a kurzor a cella végén jelenik meg, és azonnal látható, hogy van-e előtte szóköz.
Az A oszlopban feltehetően máshol is előfordul az A2 érték, abból adódik a C2 értéke.
Feltételes formázás:
Feltételes formázás | Új szabály | A formázandó cellák kijelölése képlettel | Értékek formázása, ha ez a képlet igaz. -
Delila_1
veterán
válasz
the radish #20579 üzenetére
-
Delila_1
veterán
válasz
the radish #20577 üzenetére
Nincs szükség a B1:C2, és D1:D7 tartományokra.
A Mutt által írt makróba egyetlen sort kell beírnod a tInput.SetFocus sor alá:Label1 = Format(Weekday(Range("A1"), 2), "dddd")
A Label1 Caption tulajdonságából töröld ki a Label1 szöveget, mert az zavaró.
Látod, itt nem textbox, hanem label szerepel, mert ezt nem a felhasználónak kell megadnia, hanem a bevitt dátum alapján a makró írja be.
A füzetben is elég lenne a B1 képlete, ahol a formátumot az egyéni kategóriában nnnn-nek állítod be. Erre csak akkor van szükség, ha a lapodon is rögzíteni akarod, hogy a bevitt dátum milyen napra esik. Még jobb, ha egyáltalán nincs függvény a lapon, hanem a weekday-es sor után a makróba beírt
range("b1")=label1 sorral fixen megadod a cellába a napot. -
Delila_1
veterán
válasz
antikomcsi #20551 üzenetére
Tedd elérhetővé a füzetet.
A 2. kérdésedre:
Indokolatlanul kicsire állítod az egyes lapjaid nagyítását, a cellákban lévő karakterek óriások, ezért az érvényesítés normál méretű karakterei ezekhez képest eltörpülnek.
A pár napja elküldött füzetedben kijavítottam ezeket a formázási anomáliákat. -
Delila_1
veterán
válasz
privatposta #20548 üzenetére
-
Delila_1
veterán
válasz
privatposta #20546 üzenetére
Az Adatok, Szövegből oszlopok menüpont erre való.
-
Delila_1
veterán
válasz
the radish #20529 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #20526 üzenetére
CommandButton1.ForeColor = &HFF& 'piros
CommandButton1.ForeColor = &H8000& 'zöld -
Delila_1
veterán
válasz
the radish #20524 üzenetére
Private Sub UserForm_Activate()
Application.Wait Now() + TimeValue("00:00:03")
gomb.Visible = True
gomb.Enabled = True
End Sub3 mp után látható, és engedélyezett lesz a gomb. Nincs szükség mindkét beállításra.
Azt is megteheted, hogy a gomb felirata pl. piros, míg le nem telt a késleltetés, majd megváltozik. -
Delila_1
veterán
válasz
szőröscica #20522 üzenetére
Nincs mit.
-
Delila_1
veterán
válasz
szőröscica #20520 üzenetére
A kritériumot idézőjelek között add meg, ">35".
-
Delila_1
veterán
válasz
bulanjoe #20508 üzenetére
A képen láthatod a képleteket.
Az E2 képletét másold jobbra és le, a D10-ét jobbra.A lapon kikapcsoltam a "Zéró mint érték" funkciót, az E2:AA4 tartományra feltételes formázást adtam.
Ha a cella értéke 1, akkor piros kitöltés, és körben fehér keret.Szerk.: mivel a zéró mutatását kikapcsoltam, a D1 cellában sem látszik. Tegyél a cella fölé egy szövegdobozt, aminek az értéke legyen 0.
-
Delila_1
veterán
válasz
Lackó86 #20498 üzenetére
A füzetedben, ahol majd esetleg alkalmazod, Alt+F11-re bejön a VBA szerkesztője. Bal oldalon kiválasztod a füzeted nevét. Insert menü, Module. Bal oldalon látod, hogy kaptál egy Modules mappát, abban a Module1 nevűre állsz. Jobb oldalon a nagy üres területre bemásolod a makrót. Ezután már használhatod a füzetedben úgy, mint bármelyik másik függvényt, =csakszám(a1) formában.
Keress rá itt a fórumon a personal szóra. Találsz több hsz-t, ami erről szól. Ha ebbe a personal-ba viszed be a makrót, akkor bármelyik füzetedben alkalmazhatod az új, saját függvényedet.
-
Delila_1
veterán
válasz
Lackó86 #20494 üzenetére
A jelenlegi feladathoz ez a képlet kell. Nálam az adat az A1 cellában van.
=JOBB(A1;HOSSZ(A1)-1)Írtam egy függvényt, ami bármilyen összetételű adatból kiírja a számokat.
Function CsakSzám(szoveg)
Dim kar As Integer, uj
For kar = 1 To Len(szoveg)
If IsNumeric(Mid(szoveg, kar, 1)) Then
uj = uj & Mid(szoveg, kar, 1)
End If
Next
CsakSzám = uj * 1
End FunctionHa a vegyes adatod az A1-ben van, az =csakszám(a1) függvény a vegyes felvágottból a számo(ka)t adja vissza.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
antikomcsi #20489 üzenetére
Kijelölöd a beírt képletet, a Konvertálatlan gomb kiküszöböli a kacsintókat.
-
Delila_1
veterán
válasz
antikomcsi #20470 üzenetére
Hogyne mennék sokra vele?!
A különböző kérdések egy halom olyan problémát vetnek fel, amikre magamtól nem is gondoltam. Ezekből, miután elgondolkozom a megoldáson, rengeteget tanulok.
-
Delila_1
veterán
válasz
Salex1 #20462 üzenetére
Jó lett volna, ha látszanak a sor- és oszlopazonosítók. Úgy tippelem, hogy a jan.1. a B2 cellában van, a febr.1. pedif az F2-ben.
A laphoz kell rendelned a makrót.
Private Sub Worksheet_Activate()
Dim nap As Integer, honap As Integer
nap = Day(Date) + 1
Select Case Month(Date)
Case 1
honap = 2 'B oszlop
Case 2
honap = 6 'F oszlop
End Select
Cells(nap, honap).Select
End SubFolytatsd a Case utasítást 12-ig. A hónap mindig annak az oszlopnak a száma legyen, ahova az ahavi adatok kerülnek.
-
Delila_1
veterán
válasz
antikomcsi #20445 üzenetére
Küldd el a füzetedet, privátban megadom a címet.
-
Delila_1
veterán
válasz
antikomcsi #20441 üzenetére
Az If Target ... End If részt másold a jelenlegi End If alá.
A Target.Column értékét a jelenlegi 2-ről írd át az oszlop számára, ahonnan a H, J, stb. oszlopokhoz a dátumot megadod.
A másolatokban ahol F-et találsz, írd át H-ra, J-re, stb. -
Delila_1
veterán
válasz
antikomcsi #20437 üzenetére
Mi nem működik?
-
Delila_1
veterán
válasz
the radish #20415 üzenetére
Szívesen. Sajnos nem tudok jobbat. A második függvény a B2-re hivatkozzon.
-
Delila_1
veterán
válasz
Salex1 #20386 üzenetére
A textbox tulajdonságainál add meg a LinkedCell értéknek pl. az L1-et.
Duplaklikk a textboxra, a kódlapon megkapod a change esemény első és utolsó sorát.Egyetlen sort kell közéjük írni:
Selection.AutoFilter Field:=2, Criteria1:=Range("L1") & "*"
Az autoszűrő a textboxba bevitt karakterek szerint szűr. Az első karakter beírására az összes adat látszik, ami azzal a karakterrel kezdődik. A második karakter leütésére a két bevitt karakterrel kezdődő adatok jelennek meg.
-
Delila_1
veterán
válasz
the radish #20380 üzenetére
A második részt a C2-be tedd.
-
Delila_1
veterán
Végre elárultad a nagy titkot!
...de miért kellett erre többször külön rákérdezni?!
Figyelj! Nem xlx, hanem xls a kiterjesztés.
A mentés sora
ActiveWorkbook.SaveAs Filename:=utvonal & sor & ".xlsx"
helyett
ActiveWorkbook.SaveAs Filename:=utvonal & "0" & Cells(sor, "A") & ".xls" -
Delila_1
veterán
A felső két sor másolásához a
WSE.Rows(1).Copy WSM.Range("A1") helyett írj WSE.Rows("1:2").Copy WSM.Range("A1")-t.
A WSE.Rows(sor).Copy WSM.Range("A2") helyett pedig WSE.Rows(sor).Copy WSM.Range("A3") legyen.Az ActiveWorkbook.SaveAs Filename:=utvonal & sor & ".xlsx" sor végéről töröld az x-et.
Titok, hogy melyik oszlopból akarod venni a fájlok címét? Ha igen, akkor találd ki a mentés módját, nem tudok segíteni nélküle.
-
Delila_1
veterán
válasz
Salex1 #20386 üzenetére
Nem néztem kellő figyelemmel a haloványan bevitt makródat, amiből kiderül, hogy nem külön userformon, hanem a füzet egy lapján van a textbox. Ebben az esetben a textboxon jobb klikk, makró hozzárendelése. Megjelenik a makróidat tartalmazó párbeszéd ablak, ahonnan kiválasztod a megfelelőt.
-
Delila_1
veterán
válasz
Salex1 #20390 üzenetére
Duplaklikk a textboxon. Ad egy makrót Private Sub TextBox1_Change() címmel, és End Sub-bal. A lap tetején jobbra a legördülőben a Change esemény látszik, ahelyett kiválasztod az AfterUpdate eseményt. A Sub és End Sub sorok közé másolod át a kész makródat, a Change eseményhez adott két sort törölheted.
-
Delila_1
veterán
A lenti makróval megoldható.
A Const utvonal = "C:\Temp\" sort írd át a saját mentési útvonaladra.A makrót arról a lapról kell indítanod, ahol a másolandó sorok vannak. Az utvonal változóba beírt mappába menti a fájlokat, mindegyiket azon a néven, ahányadik sorban megtalálta az adatokat.
Gondolom, fejléc is van a lapodon, ezért minden új füzet első sora a fejléc lesz, második pedig a kiválasztott adatsor. Addig fut a makró, míg az A oszlopban talál adatot.Sub UjFuzetek()
Dim sor As Long, WB As Workbook, WSE As Worksheet, WSM As Worksheet
Const utvonal = "C:\Temp\"
Application.ScreenUpdating = False
Set WB = Workbooks(ActiveWorkbook.Name)
Set WSE = WB.Sheets("Munka1")
sor = 2
Do While Cells(sor, "A") <> ""
Workbooks.Add
Set WSM = ActiveWorkbook.Sheets("Munka1")
WSE.Rows(1).Copy WSM.Range("A1")
WSE.Rows(sor).Copy WSM.Range("A2")
ActiveWorkbook.SaveAs Filename:=utvonal & sor & ".xlsx"
ActiveWorkbook.Close
sor = sor + 1
Loop
Application.ScreenUpdating = True
MsgBox "Kész van a soronkénti mentés", vbOKOnly + vbInformation
End Sub -
Delila_1
veterán
válasz
antikomcsi #20382 üzenetére
Itt válaszoltam, kitettem egy füzetet hozzá.
-
Delila_1
veterán
Ebben a másolt füzetben csakis a másolt lapok vannak?
Ha igen, az új lap beszúrása
Sheets.Add.Name = "KW" & Worksheets.Count +1Beteheted egy változóba is a nevet
nev = "KW" & Worksheets.Count +1
Sheets.Add.Name = nevEbben az esetben a nev változóval hivatkozhatsz másoláskor a lapra.
-
Delila_1
veterán
válasz
misa479 #20371 üzenetére
A makróban a csillagokkal megjelölt sorban írd át a Munka1-et a saját lapod nevére, ami az adatokat tartalmazza.
Sub KulonLapra()
Dim felso As Long, also As Long, nev As String
Dim WF As WorksheetFunction, WS As Worksheet
Set WF = Application.WorksheetFunction
Set WS = Sheets("Munka1") '**************
WS.Activate
'Rendezés a B oszlop szerint
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
felso = 2
Do While Cells(felso, 1) <> ""
nev = Range("B" & felso)
also = WF.Match(nev, Columns("B"), 1)
Sheets.Add.Name = nev
WS.Activate
Rows(1).Copy Sheets(nev).Range("A1")
Rows(also & ":" & felso).Copy Sheets(nev).Range("A2")
felso = also + 1
Loop
End Sub -
Delila_1
veterán
válasz
Salex1 #20355 üzenetére
Rögzíts egy makrót úgy, hogy "gyalog" beviszed a kritériumot a megfelelő oszlophoz, majd a makróban írd át a feltételt a szövegdoboz értékére. Criteria1:=TextBox1.Text
Ilyesmi lesz:
Dim tartomany As Range
Set tartomany = Range("A1:D12")
tartomany.AutoFilter Field:=1, Criteria1:=TextBox1.TextItt a megadott tartomány első oszlopát (Field:=1) szűrtem.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
bteebi #20342 üzenetére
Nálam csont nélkül végrehajtotta.
Próbáld meg, hogy a Lista laphoz ennyit rendelsz:Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Cimsor
End SubEgy modulba pedig ezt:
Sub Cimsor()
Dim lap%
For lap% = 1 To Worksheets.Count
If Sheets(lap%).Name <> "Lista" Then
Sheets(lap%).PageSetup.CenterHeader = "Szín: " & Sheets("Lista").Range("A1").Value
End If
Next
End Sub -
Delila_1
veterán
válasz
bteebi #20329 üzenetére
A Lista laphoz kell rendelned a makrót.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lap%
If Target.Address = "$A$1" Then
For lap% = 1 To Worksheets.Count
If Sheets(lap%).Name <> "Lista" Then
Sheets(lap%).PageSetup.CenterHeader = "Szín: " & Sheets("Lista").Range("A1").Value
End If
Next
End If
End Sub -
Delila_1
veterán
válasz
the radish #20305 üzenetére
=DÁTUM(ÉV(MA())-1;HÓNAP(MA());NAP(MA()))
Új hozzászólás Aktív témák
Hirdetés
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eladó Steam kulcsok kedvező áron!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Gyermek PC játékok
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060Ti 8GB GAMER PC termékbeszámítással
- Microsoft Surface Laptop 3 - 15 col - Fekete
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 128GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Csere-Beszámítás! Asus Rog Strix GTX 1080Ti 11GB GDDR5X Videokártya!
- BESZÁMÍTÁS! Apple MacBook Pro 14 M2 Pro - M2 Pro 16GB 512GB SSD garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest