- Android alkalmazások - szoftver kibeszélő topik
- CMF Buds Pro 2 - feltekerheted a hangerőt
- iPhone topik
- Samsung Galaxy Watch7 - kötelező kör
- Megjelent a Poco F7, eurós ára is van már
- Telekom mobilszolgáltatások
- One mobilszolgáltatások
- Vivo X200 Pro - a kétszázát!
- Mobil flották
- Okosóra és okoskiegészítő topik
-
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
A makró összeállítja a területek kiosztását.
Sub Terulet()
Dim sor As Integer, oszlop As Integer, vel As Integer, i As Integer, soruj As Integer
Dim tomb(1 To 36) As Integer
Application.ScreenUpdating = False
Range("B4:E23") = ""
For sor = 4 To 23
UjSor:
For oszlop = 2 To 5
UJRA:
Randomize
vel = Round(Rnd() * 33 + 3, 0) '3 és 36 közötti véletlenszámot ad
If tomb(vel) > 0 Then GoTo UJRA ' Ha volt már a sorszám, akkor újra generál
tomb(vel) = 1
Next
oszlop = 2
For i = 1 To 36 'Beírja a területet, lenullázza a tömböt
If tomb(i) = 1 Then
Cells(sor, oszlop) = Cells(i, "G")
oszlop = oszlop + 1
End If
tomb(i) = 0
Next i
For soruj = 3 To 36 'Van-e 3× a terület?
If Application.CountIf(Range("$B$4:$E$23"), Range("G" & soruj)) > 3 Then
Range("B" & sor & ":E" & sor) = ""
For i = 1 To 36
tomb(i) = 0
Next
GoTo UjSor
Exit For
End If
Next
Next
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
aviator #26427 üzenetére
Gondolom, az időértéket tartalmazó cellák szöveg formátumúak, azért kell a ":"-ot keresni bennük.
Kijelölöd az oszlopot, és indítod a makrót.Sub Kijelol()
Dim CV As Object, ter As String
For Each CV In Selection
If CV = "" Then
Exit For
Else
If InStr(CV, ":") > 0 Then ter = ter & CV.Address & ","
End If
Next
ter = Left(ter, Len(ter) - 1)
Range(ter).Select
End Sub -
Delila_1
veterán
válasz
Zola007 #26424 üzenetére
Újra elolvastam az eredeti kérdést, így már csak a területet kell átírnod a makróban.
Sub csere()
Dim Cella As Range, b As Integer
For Each Cella In Range("A1:A3") '*****
If InStr(Cella.Value, "*") > 0 Then
For b = 1 To Len(Cella)
If Mid(Cella, b, 1) = "*" Then
Cella.Characters(Start:=b, Length:=1).Font.Color = -16776961
End If
Next
End If
Next
End SubHa biztos, hogy cellánként csak egy csillag van, akkor
Sub csere_1()
Dim Cella As Range, hol As Integer
For Each Cella In Range("A1:A3") '*****
On Error Resume Next
hol = InStr(Cella.Value, "*")
Cella.Characters(Start:=hol, Length:=1).Font.Color = -16776961
Next
End Sub -
Delila_1
veterán
válasz
Zola007 #26424 üzenetére
A lenti makró az A1:A3 tartományban írja át az a betűket pirosra.
Sub csere()
Dim Cella As Range, b As Integer
For Each Cella In Range("A1:A3") '***** 1
If InStr(Cella.Value, "a") > 0 Then '***** 2
For b = 1 To Len(Cella)
If Mid(Cella, b, 1) = "a" Then '***** 3
Cella.Characters(Start:=b, Length:=1).Font.Color = -16776961 '***** 4
End If
Next
End If
Next
End SubA csillagos sorokban kell módosítanod.
1. a területet az "A1:A3" helyére
2. és 3. a keresendő szöveget az "a" helyére
4. a Lenght:=1 -ben az 1 helyett a saját átszínezendő szöveged hosszát -
Delila_1
veterán
válasz
Illusion1010 #26420 üzenetére
-
Delila_1
veterán
válasz
Illusion1010 #26418 üzenetére
A2-től a táblázat jobb alsó cellájáig add meg az érvényességet a szabályok kezelésénél.
-
Delila_1
veterán
válasz
Illusion1010 #26416 üzenetére
Valószínűleg kihagytad a $ jeleket a képletből, amik rögzítik az adott oszlopra történő hivatkozást.
-
Delila_1
veterán
válasz
Illusion1010 #26411 üzenetére
A képletet a teljes tartomány kijelölése után add meg.
-
Delila_1
veterán
válasz
Illusion1010 #26408 üzenetére
=ÉS($J2="X";$K2=2;$N2<50;$O2>60)
a képlet a feltételes formázásban.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
m.zmrzlina #26374 üzenetére
On Error Resume Next
Workbooks.Open Filename:="Elérési_út\FájlNeveKiterjesztéssel" -
Delila_1
veterán
válasz
karlkani #26332 üzenetére
Ismered a fényképezőgép ikont?
Ennek a segítségével a képernyőn éppen nem látható, távoli cellát teheted állandóan láthatóvá, illetve olyan helyre vetíted ki, ahol éppen jársz. Területet is kijelölhetsz vele.
Mint látod, a képletet a képernyőn pillanatnyilag nem látható E41 cella tartalmazza, és a B oszlop első 12 értékét összegzi. Követi a változásokat.
-
Delila_1
veterán
Ilyenkor kell lekérdezni a kódját. Beírod az Ű-t egy cellába, és a KÓD függvénnyel hivatkozol erre a cellára.
=kód(a1)Értékként 219-et kapsz. A makróban a csere így módosul:
Cells.Replace What:="körte", Replacement:=Chr(219) & "valami", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=FalseFájlnévben nem érdemes ékezetes betűket alkalmazni.
-
Delila_1
veterán
válasz
karlkani #26317 üzenetére
"Valamint olyan cella változását képes figyelni, melyet nem én módosítok, hanem néhány cella tartalmát összegzi, s, ha változás van, azt jelezze egy cellában nekem?"
Azokat a cellákat kell figyeltetned, amik az összegző cella értékét módosítják.
Például a B5:B20 tartomány összegzésénélIf Not Intersect(Target, [B5:B20]) Is Nothing Then
-
Delila_1
veterán
Az a füzet, mivel makrót tartalmaz, xlsm kiterjesztésű, annak az egynek nyitva kell lennie, hiszen abból indítod a makrót. A többi xlsx kiterjesztésű, azokat nyitja meg sorban.
A többi első lapján kicseréli a szövegeket, most már kipróbáltam. Lehet, hogy nem az első lapon kel csere-berélni?
-
Delila_1
veterán
Próba nélkül!
Sub Csere()
Dim utvonal As String, FN As String
Application.DisplayAlerts = False
utvonal = "F:\Eadat\" '*****
FN = Dir(utvonal & "*.xlsx")
Do While FN <> ""
Workbooks.Open utvonal & FN
Sheets(1).Select '*****
Cells.Replace What:="régi szöveg", Replacement:="új szöveg", LookAt:=xlPart, _ '*****
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveWindow.Save
ActiveWindow.Close
FN = Dir()
Loop
Application.DisplayAlerts = True
End SubA makró az utvonal változóban megadott mappából sorban megnyitja az ott lévő, *.xlsx kiterjesztésű füzetet.
A Sheets(1).Select sor ráállítja a füzetben lévő első lapra.
A cserét az ezután következő, 3 soros utasítás végzi el, majd a megnyitott füzetet menti és bezárja.Három helyre tettem csillagokat, ahol az útvonalat, a megnyitott füzet első lapját, és a "mit cseréljen mire" szövegeket kell megváltoztatnod.
A makrót léptetve próbáld ki 2 füzeten – VB szerkesztőben F8-cal léptetve, majd leállítva. Ha megfelel, a makró elejére beszúrhatsz egy sort, ami leállítja a képernyőfrissítést, ezzel gyorsítva a futást.
Application.ScreenUpdating = False
A makró végén ezt vissza kell állítani.
Application.ScreenUpdating = True
-
Delila_1
veterán
válasz
jkoczor #26306 üzenetére
Az Adatok | Kapcsolatok | Hivatkozások menüben a Váltás gomb engedi kitallózni az új mappát, és fájlnevet. Ez módosítja a füzetben lévő, előző helyre és fájlra történt hivatkozásokat.
Szerk.:
Közben kipróbáltam. Tettem be egy hivatkozást másik füzetből. Mindkét füzetet bezártam, a 2. füzetet áttettem más mappába. A hivatkozást tartalmazót megnyitottam. Azonnal dobott egy ablakot, ahol módosíthattam a csatolást. -
Delila_1
veterán
válasz
Gandalf80 #26297 üzenetére
Másik megoldás, mikor a dátumot és a műszakot kiválasztva a H1 és H2 cellában, a H4 érvényesítésében a választásnak megfelelő nevek jelennek meg.
Itt is elrejthető a J oszlop, az L-ben pedig bővíthető a névlista. Ez utóbbi a C oszlop érvényesítéseiben jelenik meg.
-
Delila_1
veterán
válasz
lokos19 #26192 üzenetére
For Each cell In Range(ter)
If cell.Interior.ColorIndex = 6 Then Cells(5, 5) =Cells(5, 5) +cell.value 'sárga
If cell.Interior.ColorIndex = 5 Then Cells(5, 12) =Cells(5, 12) +cell.value 'kék
If cell.Interior.ColorIndex = 3 Then Cells(5, 15) =Cells(5, 15) +cell.value 'piros
Next -
Delila_1
veterán
válasz
Fferi50 #26150 üzenetére
Van táblázat a 2003-ban, sőt előtte is, csak ott listának nevezték.
Eddig úgy tudtam, az a lényeg ennél a szűrésnél, hogy megegyezzenek a mezőcímek, de látod, Hhheninél összejött.
"...úgy tudtam megoldani, hogy fölvettem egy "többet" nevű fiktív mezőt, alá d2<k2, és tökéletesen működik"
Nálam az ab.darab2(...) sem jött így össze.
-
Delila_1
veterán
Rosszul írtam a két oszlop formátumát.
A G és H oszlop formátuma
(p):mm, jobbra behúzva, behúzás 1.
A szögletes zárójelek nélkül nem mutatná az eltelt órákat a két időpont között. Ezzel igen, percbe átszámolva.Szerk.: a szögletes zárójelet a fórummotor lekerekíti, de a szögletes kell.
-
Delila_1
veterán
A kezdés idejét a rajzszám beírásához rendeltem. Ha az A-hoz is beírnám, akkor eltelik némi idő (pláne, ha közben az adatrögzítő megiszik egy kávét) a rendelés bevitele után, és úgyis felülírná az egyszer már beírt kezdést.
A D, G, és H oszlop megadását is csak az F-hez kötöttem, nincs értelme az E-hez is megadni.
A G és H oszlop formátuma p:mm, jobbra behúzva, behúzás 1.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Column = 2 Then Cells(Target.Row, "C") = Now
If Target.Column = 6 Then
Cells(Target.Row, "D") = Now
Cells(Target.Row, "G") = Cells(Target.Row, "D") - Cells(Target.Row, "C")
Cells(Target.Row, "H") = Cells(Target.Row, "G") / Cells(Target.Row, "F")
End If
End Sub -
Delila_1
veterán
Induljunk el a kályhától.
Mikor mit csináljon a makró?Beírod a rendelés számát, majd a rajzszámot. Ekkor írja be a kezdés idejét a C-be?
Mikor írja be a befejezés idejét a D-be? Mikor az F-ben megadod a legyártott darabok számát?A G2 képlete =D2-C2 legyen, percben megadva, és ebből számolja ki a H a darabidőt? Ezt a darabszám megadásakor (F) végezheti.
-
Delila_1
veterán
válasz
hhheni #26128 üzenetére
Fiktívnek azt nevezném, amit beírsz a kritériumtáblába, de az eredeti táblában nem szerepel. Erre nem tud szűrni az irányított-, vagy speciális szűrő.
Ha az eredeti táblába veszel fel egy új oszlopot, ahol bizonyos számításokat, összehasonlításokat végzel, az egy segédoszlop, része lesz a táblázatodnak, lehet rá szűrni.
Csakis a fiktív elnevezéssel nem értek egyet.
-
-
Delila_1
veterán
válasz
cellpeti #26094 üzenetére
A lenti makró bekéri a keresendő szöveget, és az összes lapon kipirosítja ezeknek a hátterét.
Sub Piros()
Dim lap As Integer, ter As Range, keres As String
Dim CV As Object
keres = Application.InputBox(prompt:="Kérem a keresendő szöveget", Type:=2)
For lap = 1 To Worksheets.Count
Sheets(lap).Activate
Set ter = Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, _
ActiveSheet.UsedRange.Columns.Count))
For Each CV In ter
If CV = keres Then Range(CV.Address).Interior.ColorIndex = 3
Next
Next
End Sub -
Delila_1
veterán
válasz
anti01 #26074 üzenetére
Lemaradt a kép.
A logika, "Ha B3="" akkor törölje B,C,D oszlopot, ha E3="" akkor törölje F, G, H oszlopokat" nem egészen tiszta. Az elsőbe beleesik a vizsgált oszlop a 3 törlendőbe, a másodiknál nem.
Nekem az sem világos, hogy soronként kell-e vizsgálni. Ha igen, akkor bukfenc, mert ha a 3. sort nézve kitörlünk oszlopokat, olyan oszlopot is törölhetünk, ahol az n-edik sorban a fenti feltételek nem igazak.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
Csuklósbusz #26037 üzenetére
A második lapnak csupán annyi értelme van, hogy kiszűri azokat a címeket, neveket, ahol nincs megrendelés.
Az új változat 1 lapon végzi el ezt a feladatot.
[link] -
Delila_1
veterán
válasz
Csuklósbusz #26034 üzenetére
Tettem fel egy mintát.
Az első lapra felviszed az adatokat. Nem vonsz össze sorokat az azonos házszámoknál, mint a mintában. Az azonos címek sorait feltételes formázással kiemeltem. A változásokat mindig erre a lapra kell felvinned.
A második lapon a 3 érvényesítésben behozod a dátumot. Mikor a napot is kiválasztottad, az első munkalapról átmásolódnak ide azok a sorok az első lapról, ahol van jelölve valamelyik napi-, heti-, vagy havilap.
Itt annak a lapnak az oszlopát szűröd, amelyiket akarod, például pénteken a hetilapokat – egyenként.
A T:W oszlopokat elrejtheted, azok az érvényesítésekhez kellenek.A második lap 2 címsora egyezzen meg az elsőével.
-
Delila_1
veterán
válasz
Csuklósbusz #25991 üzenetére
-
Delila_1
veterán
válasz
slashing #25958 üzenetére
Ilyen feladatoknál használható.
Amire figyelni kell: ha a felső sor, és/vagy a bal oszlop megnevezései szóközt tartalmaznak, akkor a létrehozott névben a szóköz helyett alsó kötjel lesz. Pl. a Címsor 1-ből Címsor_1 lesz. Ilyen esetben a példa szerinti érvényesítés értékét egy másik cellában szövegfüggvénnyel át kell alakítani a Címsor_1 formára, és erre kell hivatkozni a metszet operátorral. Ez túl bonyolult, érdemes inkább Címsor1 formát alkalmazni, vagy eleve Címsor_1 legyen a sor-, vagy oszlopfejben.
Más függvénybe beágyazva nem próbáltam még, majd később... Avagy: Tiéd a pálya!
Új hozzászólás Aktív témák
Hirdetés
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Hálózati / IP kamera
- Vezetékes FEJhallgatók
- A Micron újszerű módszerrel javítja QLC-s SSD-jének sebességét
- Otthoni időjárás-állomás
- Dune Awakening - Máris túl az 1 millión
- Konzol Screenshot
- Mesterséges intelligencia topik
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Lenovo S10-2 Intel Atom retró csajszis netbook eladó
- Bomba ár! HP Elitebook 850 G3 - i7-6GEN I 16GB I 256GB SSD I RadeonI 15,6" FHD I Cam I W11 I Gari!
- Lenovo Legion 5 Gaming. Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
- LG UltraGear Gaming Monitorok: FRISS SZÁLLÍTMÁNY -30%
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged