- Fórumok
- OS, alkalmazások
- Microsoft Excel topic
- (kiemelt téma)
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
-
23400 - 23301
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 30001 30000 - 28001 28000 - 26001 26000 - 25901 25900 - 25801 25800 - 25701 25700 - 25601 25600 - 25501 25500 - 25401 25400 - 25301 25300 - 25201 25200 - 25101 25100 - 25001 25000 - 24901 24900 - 24801 24800 - 24701 24700 - 24601 24600 - 24501 24500 - 24401 24400 - 24301 24300 - 24201 24200 - 24101 24100 - 24001 24000 - 23901 23900 - 23801 23800 - 23701 23700 - 23601 23600 - 23501 23500 - 23401 23400 - 23301 23300 - 23201 23200 - 23101 23100 - 23001 23000 - 22901 22900 - 22801 22800 - 22701 22700 - 22601 22600 - 22501 22500 - 22401 22400 - 22301 22300 - 22201 22200 - 22101 22100 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2023-11-13 08:31 Téma összefoglaló
Új hozzászólás Aktív témák
-
slashing
senior tag
-
Delila_1
veterán
Beviszed a neveket egy oszlopba. Táblázattá alakítod, és a Nevek névvel látod el a tartományt.
Sub mm()
Dim nev$, tomb(), v As Integer, megvan As Boolean
nev$ = Application.InputBox("Add meg a neved!", "Név bekérése", , , , , , 2)
tomb = Application.Transpose(Range("Nevek"))
For v = 1 To UBound(tomb)
If nev$ = tomb(v) Then
megvan = True
Exit For
End If
Next
If megvan = False Then
MsgBox "Nem szerepelsz a nevek között!"
Exit Sub
Else
MsgBox nev$ & " a(z) " & v & ". helyen szerepel."
'makró többi része
End If
End SubBővítheted agyba-főbe a tartományt.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
slashing
senior tag
a legegyszerűbb ha úgy mondom mint amikor keresel valamilyen fájlt a számítógépen és azt írod hogy:
*kutya*.* így megkeresel minden olyan fájlt amiben a kutya szó szerepel bármilyen kiterjesztéssel, ez is kvázi egy regex kifejezés...
szóval ilyen kifejezéssek leírhatod hogy mit szeretnél kerestetni karaktereket számokat azoknak a hosszát stb...
Mindent az ég egy adta világon le lehet írni velük de mocskos bonyolult tud lenni, szerencsére nem sok közöm volt eddig hozzá.
-
Mittu88
senior tag
-
slashing
senior tag
Huh vannak ám variációk én meg akkor mondok egy harmadikat.
Mi lenne ha reguláris kifejezéssel írnánk le hogy mi az amit elfogadhat?
Most fejből meg nem írom mi ennek a regexp kódja de mittudom én [a-zA-Z] szókóz [a-zA-Z] lenne
csak gőzöm sincs hogy kezeli a VBA a regexp kódot
amúgy a folyamatos frissítésre lenne lehetőségem csak ***** mód lusta vagyok és nincs kedvem hozzá

-
m.zmrzlina
senior tag
Én ezt egyszer úgy oldottam meg, hogy az inputboxban megadtam a formáját a neveknek amit elfogad a makró.
technikus = UCase(InputBox("Add meg a technikus nevét!" & Chr(10) "TUDOR VIDOR SZENDE SZUNDI MORGÓ HAPCI KUKA MIND"))
If technikus <> "MIND" Then
If Application.WorksheetFunction.CountIf(Worksheets("PrnWinExcel").range("B:B"), technikus) = 0 Then
MsgBox "Nincs ilyen technikus."
Exit Sub
ElseIf technikus = "" Then
Exit Sub
End If
End IfPersze ez csak akkor működik ha minden elfogadható input ismert a programozás idején, nem bővül vagy egészül ki esetleges elemekkel a Worksheets("PrnWinExcel").range("B:B") tartomány vagy van lehetőség a folyamatos frissítésére.
-
Delila_1
veterán
-
slashing
senior tag
Hát ilyen variációra nem is gondoltam de azthiszem belerakom úgy hogy minimum 5 karakter legyen a hossza és akkor már rövidíteni sem tudja a nevét. Persze a 6 szóközt így is elengedi de mennyi erre az esély hogy kipróbálja?
-
m.zmrzlina
senior tag
-
Delila_1
veterán
-
bteebi
veterán
Azt amúgy hogy lehetne megcsinálni, hogy csak szóköz(öke)t ne adhasson meg névnek? Mert ez
Loop Until nev <> "" And nev <> " " Or nev = False
csak egy karakternyi szóközig működne, n db esetén már nem.Némi keresgélés után sikerült megoldanom, de az azért érdekelne, hogy meg lehetne-e szebben is írni (egyszerűbben minden bizonnyal nem):
Do
nev = InputBox("A mérést végző személy Teljes neve:")
ujnev = WorksheetFunction.Substitute(nev, " ", "")
Loop Until ujnev <> "" Or nev = FalseCancel all my meetings. Someone is wrong on the Internet. -
slashing
senior tag
Hát én is kb. erre jutottam: miután lefutott a kódom nem térek vissza arra a lapra ahonnan másolni akarok hanem előbb a törlendő lapra ugrok és törlök majd visszaugrok a másolandó adatokat tartalmazó lapra ott másolok és újra visszaugrok arra a lapra hol előtte kitöröltem.
szóval csináltam egy oda vissza oda bakugrást 
-
m.zmrzlina
senior tag
Talán egy fokkal jobb, ha kiírod tömbbe. Onnantól fogva van egy változód amit kedved szerint módosíthatsz aztán a végén visszaírod a munkalapra.
-
m.zmrzlina
senior tag
-
slashing
senior tag
-
Mittu88
senior tag
-
slashing
senior tag
-
Mittu88
senior tag
-
slashing
senior tag
-
slashing
senior tag
Jah meg még egy kérdés ki lehet azt játszani valahogy ha valamit vágólapra másoltatok de ezután lefut egy selection.clearcontents de dobja el a vágólap tartalmát?
(#23380) Mittu88 köszi mindjárt ki is próbálom
-
Mittu88
senior tag
-
slashing
senior tag
Most már csak a user errorokat próbálom kiküszöbölni. Érdekelne hogy mi a legegyszerűbb megoldás arra hogy a Név és WO kérésre ha valamiért Mégsét nyom vagy nem ír be semmi és úgy okézza le akkor ne lépjen tovább a program hanem mindenképpen be kelljen írni valamit?
A dátumot megoldottam egy neten talált példa alapján de kicsit hosszasnak érzem a kódot nem szeretném mindegyikre így végigvezetni.Ötletek?
Így indul a kód:
Dim lastRow As Long, asn As String, DatumString As String, datum As Date
Dim valid As Boolean: valid = True
asn = ActiveSheet.Name
'adatok bekérése
nev = InputBox("A mérést végző személy Teljes neve:")
wo = InputBox("A méréshez tartozó WO szám Bxxxxxx/xx:")
Do
DatumString = Application.InputBox("A mérés dátuma ÉÉÉÉ/HH/NN: ")
If IsDate(DatumString) Then
datum = DateValue(DatumString)
valid = True
Else
MsgBox "Érvénytelen dátum"
valid = False
End If
Loop Until valid = True -
m.zmrzlina
senior tag
-
Imy
veterán
Köszönöm!!!
-
m.zmrzlina
senior tag
-
Fferi50
Topikgazda
-
Imy
veterán
-
Imy
veterán
Hogyan tudom beírni a cellába pl hogy 30cm? Hogy tudjon vele számolni, maradjon szám.
-
Delila_1
veterán
-
Fferi50
Topikgazda
Szia!
Itt egy példa:
Ez a munka1 munkalapon működik. (Munka2-t felejtsd el, csak nem töröltem ki.)
Ha közben makrót írsz, akkor elképzelhető a hibára futás. Viszont ezt el tudod kerülni azzal, hogy a munka1-en levő, a célkereszthez tartozó feltételes formázásokat a feltételes formázás kezelővel kitörlöd, a többit viszont hagyd változatlanul.Utána ha lépsz egyet, megjön a célkereszt ismét.
Üdv.
-
Delila_1
veterán
-
Mittu88
senior tag
-
m.zmrzlina
senior tag
-
slashing
senior tag
Köszi és neked is Delila_1 mindkét verzió nagyon jó és hasznos volt, pont úgy megy ahogy akartam 
-
m.zmrzlina
senior tag
-
slashing
senior tag
Baromi jók vagytok
a bőség zavara
Köszönöm. és mindegyikből tanultam valami újat, látszik ahány ember annyi kód ugyan arra. Egy valami hibázik csak, hogy az utolsó értéket tartalmazó oszlop után is ki kell még iratni az első input szöveget. -
m.zmrzlina
senior tag
Nekem ezt sikerült kiötleni:
Sub makro_1()
elsouzenet = InputBox("blablabla1")
masodikuzenet = InputBox("blablabla2")
datum = InputBox("datum")
Range("D5").Select
Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
Selection.Copy
Sheets.Add
ActiveSheet.Paste
hanysor = Selection.Rows.Count
hanyoszlop = Selection.Columns.Count
For i = hanyoszlop To 1 Step -1
Range(Cells(1, i), Cells(hanysor, i)).Select
Selection.Insert Shift:=xlToRight
Selection.Value = elsouzenet
Next
Range("A:B").Select
Selection.Insert Shift:=xlToRight
Range("B1").Value = masodikuzenet
Range("A1").Value = datum
Range(Cells(1, 1), Cells(hanysor, ActiveCell.End(xlToRight).Column)).Select
Selection.Copy
End Sub -
slashing
senior tag
Hát eddig jutottam:
Sub Makró5()
Dim c As Long, myvalue As Variant, lastrow As Long
Range("D5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Munka1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
c = Range("XFD1").End(xlToLeft).Column
For c = c To 2 Step -1
Cells(1, c).EntireColumn.Insert
Next c
myvalue = InputBox("add meg a szöveget")
Range("B1").Value = myvalue
lastrow = Worksheets("munka1").Range("A1").End(xlDown).Row
With Worksheets("munka1").Range("B1")
.AutoFill Destination:=Range("B1:B" & lastrow&)
End With
Columns("A:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
myvalue = InputBox("add meg a dátumot")
Range("A1").Value = myvalue
Range("B1").Select
myvalue = InputBox("add meg a szöveget")
Range("B1").Value = myvalue
End Subközel sem tökéletes pl. a dátum helyére bármit beírhatnék de ez legyen a legkevesebb. Annyi kéne még hogy az első szöveg bekérés után kitölti az oszlopot a megadott szöveggel de ezt tovább kéne vinni az utolsó oszlopig is.

(#23362) Delila_1
Máris nézem köszönöm

-
Delila_1
veterán
A végét írd meg, most el kell rohannom.
Sub valami()
Dim usor As Long, uoszlop As Integer, oszlop As Integer, v$
Sheets("Munka1").Select
Range("D5").CurrentRegion.Copy Sheets("Másik lap").Range("A1")
Sheets("Másik lap").Select
usor = ActiveSheet.UsedRange.Rows.Count
oszlop = 1
Do
Columns(oszlop).EntireColumn.Insert
oszlop = oszlop + 2
Loop While Cells(1, oszlop + 1) <> ""
Columns(oszlop).EntireColumn.Insert
v$ = InputBox("add meg az értéket")
uoszlop = oszlop
For oszlop = 1 To uoszlop Step 2
Range(Cells(1, oszlop), Cells(usor, oszlop)) = v$
Next
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
#75376384
törölt tag
-
slashing
senior tag
Kellene nekem is egy kis macrós segítség csak részben tudom összeollózni a neten találtakból
magamtól meg nem igen megy
A követekző lenne a feladat:- Az aktív munkalapon jelölje ki a D5 cellától kezdődően jobbra és lefele addig a cellákat amíg adatok vannak benne.
- Másolja új lapra rátok bízom hogy ez egy már meglévő munkalap vagy mindig újat csinál.
- Az új lapon miután beillesztette az adatokat minden második oszlop elé szúrjon be egy új oszlopot majd egy input mező jöjjön fel és amit beleír az ember azzal töltse fel az új oszlopokat addig amíg adatok vannak, 99,9% hogy mindig minden oszlop ugyan annyi sorban fog adatot tartalmazni mint amennyi az első oszlopban van.
- Ha ez megvan szúrjon be még két üres sort az A oszlop elé, még két input kérelem az első egy dátumkérés a második egy szöveges kérés, itt már elég csak az új A1-be a dátumo és B1-be a szöveget...
- Jelölje ki ezt az egész tartomány és másolja a vágólapra. -
KaiotEch
nagyúr
-
Fferi50
Topikgazda
-
KaiotEch
nagyúr
Üdv. Kollégák szám típusú mezőre hogyan tudnék kiadni max limit-et, illetve ha belekattolok "megjegyzés" jelenjen meg(nem pontosan megjegyzés(széljegyzet tán?), ez vmi más kis panel, amibe írja mennyi az a limit)?

-
Fferi50
Topikgazda
Szia!
Sikerült még rövidítenem a Thisworkbook BeforeClose -on:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Valóban kilép?", vbQuestion + vbYesNo, "Bezárás") = vbNo Then
Cancel = True
Else
valasz = MsgBox("Menti a változásokat?", vbQuestion + vbYesNoCancel, "Bezárás")
If valasz = vbCancel Then Cancel = True: Exit Sub
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
If valasz = vbNo Then
ThisWorkbook.Saved = True
kilepo = True
Else
kilepo = True
ThisWorkbook.Save
End If
End If
End Sub -
slashing
senior tag
találtam a neten egy ilyet...
Sub test()
Dim e, s
With CreateObject("System.Collections.ArrayList")
For Each e In Range("a2", Range("a" & Rows.Count).End(xlUp)).Value
If Not IsEmpty(e) Then
For Each s In Split(e, ";")
.Add s
Next
End If
Next
.Sort
Range("b2").Resize(.Count).Value = _
Application.Transpose(.ToArray)
End With
End Suba pontos vesszőt írd át vesszőre a .Sort sort meg töröld hogy ne rendezze....
-
Fferi50
Topikgazda
Szia!
A szövegből először oszlopokat csinálsz a "megtalált opcióval" mondjuk az A1-től kezdődően.
Azután kijelölöd a kivánt adatokat a sorban.
Másolás
Kijelölöd az A2 cellát.
Irányított beillesztés - transzponálás
Máris oszlopban sorakoznak a számaid.
Utána még nyomj egy ESC-t, hogy kilépj a másolás módból.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
Szia!
Ezt kell a Thisworkbook kódlapjára beírni:
Public kilepo As Boolean
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If kilepo Then Exit Sub
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
If MsgBox("Valóban kilép?", vbQuestion + vbYesNo, "Bezárás") = vbNo Then
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
Cancel = True
Else
valasz = MsgBox("Menti a változásokat?", vbQuestion + vbYesNoCancel, "Bezárás")
If valasz = vbNo Then
ThisWorkbook.Saved = True
kilepo = True
ElseIf valasz = vbYes Then
kilepo = True
ThisWorkbook.Save
Else
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
Cancel = True
End If
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End SubEzzel elérhető, hogy a "célkeresztet" nem menti le, de a fájl megnyitásakor első dolga, hogy létrehozza: ezért lép oda-vissza egyet az aktív munkalapon.
Mentés előtt eltünteti a célkeresztet, de ha csak mentés volt, utána vissza is hozza.
Kilépéskor végigjátssza a verziókat, ha mégsem lép ki, akkor marad a célkereszt.Üdv.
-
#75376384
törölt tag
sziasztok
egy triviális kérdésem lenne. cellaformázás esetén melyik az a beállítás, hogy ha beírok egy cellába valamilyen képletet, majd annak eredménye mögé vagy elé karaktereket illesszen, de az egészet továbbra is számként kezelje.
példával szemléltetve, annyi lenne, hogy pár értékem mögé "m" kellene, illetve pár érték elé egy plusz-mínusz jel.köszi előre is.
-
Fboy
aktív tag
Sziasztok!
"Az A2- A12 cellába írja be az alábbi számokat:
24, 12, 79, 32, 104, 54, 254, 46, 9, 124, 43"Erre van valamilyen spéci beillesztés? Vagy be kell írkálni őket? Olyan opciót találtam, hogy szövegből oszlopok, de ugyanezt nem tudom eljátszani sorokkal.
-
slashing
senior tag
erről én is tudnék mesélni, mikor megnyitja a munkafüzetet előjön automatikusan egy msgbox kiírja hogy mit nem szabad, a cellán érvényesítés van és kiírja hogy mit nem szabad más színnel van jelölve és még akkor is az ellenkezőjét csinálja mikor meg letiltom akár még a rákattintást is akkor meg reklamál hogy de miéééért, mert hülye vagy azért és nem fogja fel....
az abszolút hozzá nem értőnél már csak az rosszabb aki azt hiszi hogy ért hozzá, mert majd ők megoldják de még egy ha függvényt sem tud megcsinálni

minden szerénység nélkül mondom hogy nálunk 5 asszisztens munkáját fél év alatt automatizálni tudnám és még csak makró sem kéne hozzá, pedig én se vagyok egy nagy mágus de félelmetes a hozzá nem értés. A színezésen kívül talán még a szum függvény amit értenek...
-
Delila_1
veterán
2007-ben nem jó, 2010-ben igen, azt leszámítva, hogy a füzet újbóli behívásakor a lapon megmarad az utolsó kijelölésnek megfelelő szálkereszt. Erre tudsz valami megoldást?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
Fferi50
Topikgazda
Szia!
Szerintem nem beszéltünk el egymás mellett, de ez nem is lényeges.
A 2010-es exceltől biztosan (de valószínűleg a 2007-ben is már) igen egyszerűen megoldható a feladat:Public fmtcondis As New Collection
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ujfmtr As FormatCondition, ujfmtc As FormatCondition, ujfmtt As FormatCondition
On Error Resume Next
If IsError(Target.Cells.Count) Then Exit Sub
On Error GoTo 0
If Target.Cells.Count <> 1 Then Exit Sub
If fmtcondis.Count > 0 Then
On Error Resume Next
For Each fmt In fmtcondis
fmt.Delete
fmtcondis.Remove 1
Next
On Error GoTo 0
End If
With Target
With .EntireRow
Set ujfmtr = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtr '.FormatConditions(1)
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtr, "fmt1"
With .EntireColumn
Set ujfmtc = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtc '.FormatConditions(1)
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtc, "fmt2"
Set ujfmtt = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
ujfmtt.Interior.ColorIndex = 36
ujfmtt.SetFirstPriority
fmtcondis.Add ujfmtt, "fmt3"
End With
End SubHiszen itt már be lehet szúrni "akárhány" feltételes formázást és elsőnek tenni, ha pedig megváltozik a kijelölés, akkor az előző formázást törölni.
Ha egy kijelölés közben megváltoztatod az oldalon a feltételes formázási szabályokat, akkor nem tudja a kijelölés elhagyása után letörölni a régi formázást - viszont, ha már úgyis benne vagy a szabályokban, egyszerűen ki kell törölni a kijelölésre vonatkozó feltételes formázásokat, utána az új kijelöléstől már ismét működik az automatizmus.2007. előttre olyan ötletem van, hogy az adott munkalapról csinálni kell egy másolatot és arról minden kijelölés váltásnál vissza kell másolni a formátumot az eredetire.
Üdv.
-
#02644736
törölt tag
-
Mittu88
senior tag
Az biztos. Az Apple komoly pénzeket fizetne egyes kollegák szoftveres "tesztelési" képességeiért.

-
Delila_1
veterán
Elbeszélünk egymás mellett.
Te most egy teljesen új formázásról írsz a cella kiválasztásakor, ahol egyetlen cella háttérszínét módosítod, nem a "célkeresztes" megoldásról. Ám annál is az állapotok visszanyerése jóval bonyolultabb az eltárolásnál.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
m.zmrzlina
senior tag
-
Fferi50
Topikgazda
Szia!
"Nem tudod eltárolni az adatokat."
Már miért ne tudnám. A formatcondition objektum egymaga tárolja a benne levő összes beállítást, nem kell mindenhez külön változó - még azt is tudja, hogy mely tartományra vonatkozik.
Tehát elég "csak" az adott területen található formatcondition objektumokat eltárolni. Igaz, az állapotok visszanyerése jóval bonyolultabb az eltárolásnál.Viszont amit én írtam, az egyetlen cellára vonatkozott, hiszen a feladat az volt, hogy a feltételeknek megfelelően történő ugrálásnál váltson színt a cella. Egy színt azért csak meg lehet jegyezni a cella címével együtt...
Üdv.
-
slashing
senior tag
jah azt elfelejtettem megkérdezni hogy mit értesz az alatt hogy "egy képlettel" mert egyel sehogy sem mert 3 abszolút eltérő képletről beszélünk... mindegyiknek külön oszlop kell
nálam így volt:
e2,3,4 a csoportok
f1 a létszám g1 a módusz h1 a medián és ezek alatt voltak a képletek...ha a fentiek megvannak akkor ki lehet iratni egy képlettel mindet így:
="a csoport létszáma="&F2&" módusza="&G2& " mediánja="&H2
-
slashing
senior tag
-
Delila_1
veterán
A makró több formátumot módosít: a cella háttérszínét, a 4 szegély 3-3 tulajdonságát, úgy, mint stílusát, vastagságát, és színét, ami összesen 13 tulajdonság.
Igen, látszólag el lehetne tárolni ezeket, de mikor is állítanád vissza az eredeti értékeket? Mikor egy másik cellára kattint a felhasználó.
Tehát 13 publikus változóban kellene tárolni a fentieket, plusz az előzőleg kiválasztott cella címét, hogy tudjuk, melyik cella feltételes formátumát kell visszaállítani – ha egyáltalán volt rá ilyen adva. Ezeken kívül még a feltétel(eke)t is be kellene spájzolni.Eddig 1 celláról beszéltem, de a kiválasztott cellának a teljes sorát, és oszlopát módosítja a célkeresztes makró. Hány változó is kellene ehhez?
Nem tudod eltárolni az adatokat.
A célkeresztes makrót ott lehet alkalmazni, ahol nincs a lapon feltételes formázás.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
Mittu88
senior tag
Ma pl. lecsesztek, hogy a szerveren amit anno csináltam fájlt, simán le tudta törölni az egyik felhasználó. Megnéztem és az egész fájlt törölte. Erre mondtam, hogy nem azt mondtátok, hogy ne törölhesse, hanem hogy ne törölhessen bele.
Ezt én (remélem helyesen) úgy értelmeztem, hogy ha meg van nyitva a fájl, ne tudjon munkalapot vagy cella tartalmat törölni.
Pár évnyi adatot töröltek, de van róla biztonsági mentés.
-
Mittu88
senior tag
A mi cégünknél nem elvárás az ilyen alap szintű office programcsalád ismerete. Pályakezdő vagyok (bár már talán nem, 2 éve vagyok a cégnél), máshol elvárás?
Amúgy nevetséges
-
bbTamas77
aktív tag
Sziasztok!
Tegyük fel, hogy van egy ilyen táblám, ahol a sorok a következőek:
Az oszlopok a "csoport", és "létszám".
CSOPORT1 10 fő
CSOPORT1 24 fő
CSOPORT1 30 fő
CSOPORT2 40 fő
CSOPORT2 54 fő
CSOPORT2 44 fő
CSOPORT2 24 fő
CSOPORT3 23 fő
CSOPORT3 53 fő
CSOPORT4 10 fő
CSOPORT4 12 főCsoportok összlétszámát kellett kiszámolnom csoportonként, ez eddig sikerült egy szumha függvénnyel.
De utána kellene ezeknek a soroknak Mediánt és Móduszt is számolni csoportok alapján!Hogyan lehetséges ezt egy képlettel megoldani?
-
m.zmrzlina
senior tag
-
Mittu88
senior tag
Ha kijelölöd valamelyik celláját a becsatolt adattartománynak, és az Adatok fülön rákattintasz a Kapcsolatoknál a Tulajdonságokra, lennie kell az Adatformátum és elrendezés részben olyannak, hogy Oszlopszélesség igazítása. Checkboxból pipa ki és kész.
Legalábbis 2010-esben így működik, sajnos nincs '13-asom. -
#02644736
törölt tag
Sziasztok!
Olyan problémám lenne, hogy adott egy excel (2013-as), ami 22 munkalapból áll. Az utolsó 18 lapra mindig txt fájlból olvasok be adatokat (Adatok menü Szövegből), és az első 4 munkalap azokból vesz ki adatokat.
Beállítom az utolsó 18 munkalapon a kívánt oszlopszélességeket, de mikor új txt-t olvasok be, nem marad úgy a beállított oszlopszélesség, mindig megváltozik. Be lehet valahogy állítani, hogy amit beállítok, az ne változzon meg, ha új txt-t olvasok be? -
Delila_1
veterán
Hurrá!
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
WildBoarTeam
senior tag
-
Mittu88
senior tag
Szuppper
Az Open és a BeforeClose eseményben is volt előtte parancs, ezeket egyből kiütötte (nem működtek), mert rossz helyre illesztettem be először a parancssoraidat (veryhidden munkalapon nem tud dolgozni a vba!), de minimális gondolkozás és javítás után tökéletesen működött.Nagyon szépen köszönöm a segítséget!

-
Fferi50
Topikgazda
Szia!
Az igaz, hogy a makró a feltételes formázás törlésével indít, de ki tart vissza bennünket attól, hogy előtte elmentsük a feltételes formázásnak azt az értékét, amit meg akarunk változtatni (mert nyilván, nem az egész formázás fontos, hanem annak mondjuk a színe), amikor pedig "kilépünk" belőle, akkor visszaadjuk az eredeti értéket. (De most másban vagyok benne, nem érek rá megírni - bár nyilván csak pár sor.)
Üdv.
-
slashing
senior tag
Nincs mit...
-
sutyimatyi
csendes tag
-
slashing
senior tag
-
slashing
senior tag
=ABS(SZUMHA(A3:A50;"<0"))
-
sutyimatyi
csendes tag
-
slashing
senior tag
nem próbáltam ki de elvileg működnie kell:
=SZUMHA(A3:A50;"<0";A3:A50)
sőt ha jól tudom az utolsó(második) A3:A50 csak opcionális szóval elhagyható...
-
sutyimatyi
csendes tag
Sziasztok! Segítség kellene. Hogyan lehet azt megcsinálni, hogy A3-A50 ig figyelje a beírt értékeket, és ahol negatív előjellel talál értékeket azokat összeadja, és beírja A1-be. Remélem érthetően írtam le. Köszönöm
-
Delila_1
veterán
-
Fferi50
Topikgazda
Szia!
Akkor azt javaslom, hogy a Thisworbook SheetSelectionChange eseménybe írja be a makrót:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
End SubA fenti két sor közé. Az Sh.name megmondja, hogy melyik munkalapon van éppen. Ezt megvizsgálva eldöntheti, hogy menjen-e a feltételes formázás vagy nem.
Nem kell sok-sok munkalapra másolni, csak egy változóban meg kell adni a munkalapok neveit, amit aztán többféle módon lehet ellenőrizni. (Pl. Instr függvény)
Üdv.
-
Delila_1
veterán
A kérdéses laphoz (mindegyikhez, ahol működtetni akarja) kell rendelni a lenti makrót, amit nem én írtam, de nagyon tetszik.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete
With Target
With .EntireRow
.FormatConditions.Add Type:=xlExpression, Formula1:="1"
With .FormatConditions(1)
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
End With
End With
With .EntireColumn
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="1"
With .FormatConditions(1)
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
End With
End With
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="1"
.FormatConditions(1).Interior.ColorIndex = 36
End With
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
Mittu88
senior tag
Húú de cseles
Holnap megnézem, mert most rohannom kell. Majd írok, hogy mi lett. -
m.zmrzlina
senior tag
Nekem azt sikerült kiötleni (na jó innen loptam :-) hogy hozzáadsz a munkafüzetedhez egy lapot amin csak egy információ van a felhasználónak, hogy "Nincs engedélyezve a makró. Zárd be a munkafüzetet és nyisd meg újra miután engedélyezted a makrókat!". A fálj bezárásakor ezen a lapon kívül minden munkalapot elrejtesz és mentesz. Ha valaki engedélyezett makróval vagy letiltott makróval de biztonságos helyről nyitja meg a fájlt akkor a Worbook.Open esemény során az összes munkalap rejtése megszűnik csak az üzenetet tartalmazóé marad meg ergó tud dolgozni a user. Ha viszont nincsen engedélyezve a makró akkor megnyílik a fájl de csak egy lap látható amin az üzenet van (hiszen úgy mentetted el a fájlt hogy az összes többi rejtett).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
For Each sh In Worksheets
sh.Visible = xlSheetVisible
Next
For Each sh In Worksheets
If sh.Name <> "figyelem" Then sh.Visible = xlSheetVeryHidden
Next
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Worksheets
sh.Visible = xlSheetVisible
Next
For Each sh In Worksheets
If sh.Name <> "figyelem" Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetVeryHidden
End If
Next
End SubJa és nem Insert>New>Module-ba másolod a makrót hanem a Thisworkbook>Worksheet-ba
-
WildBoarTeam
senior tag
-
nobela
senior tag
-
Mittu88
senior tag
Az megoldható valahogy, hogy CSAK akkor tudja az adott xlsm fájlt megnyitni a felhasználó, ha a makrók futtatása engedélyezve van a gépén? (vagy megbízható helyek között van az a mappa, amelyikben van, vagy alapból engedélyezve vannak a makrók)
-
littleNorbi
aktív tag
Így is gyalog kellett kijavítanom, de köszönöm, mert hosszútávra szuper megoldás.
-
slashing
senior tag
A kepleteknel is mukodik a keres es csere funkcio, nem muszaj vegigzongorazni egyesevel vagy macroval...
-
m.zmrzlina
senior tag
Én úgy írnám a fv-t, hogy pl: =FKERES(D2;A:B;2;0) ahelyett, hogy =FKERES(D2;A1:B400;2;0).
Persze csak ha nem zavar be 400. sor után lévő tartomány, (ha van ott egyáltalán valami)
-
lappy
őstag
Szia!
Hát ha jól van megírva a függvényed és persze nem olyan sok munkalap van akkor inkább manuálisan old meg. Másik módja a macro, de szerintem az nem túl egyszerűBámulatos hol tart már a tudomány! -
littleNorbi
aktív tag
Sziasztok! Van egy excel fájl, amiben több sheet található. Minden sheeten használtam egy oszlopban egy FKERES függvényt. A FKERES tartományát meg lehet valahogy egyszerűen változtatni, vagy csak gyalog? Tehát mindenhol csak pl. a 400. sorig van a tartománya, és nekem kellene hogy a 600.-ig legyen az új tartomány.
-
Delila_1
veterán
Egyszerűbb, ha a keresésnél nem a Következő, hanem a Listába mind gombot nyomod meg. A megjelenő felsorolásban egyenként nézheted meg a találatokat.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül. -
WildBoarTeam
senior tag
Sziasztok!
Szükségem lenne egy "rövid" makróra, ami csak annyit csinál, hogy azt a cellát, amin állok, azt valamilyen színnel kiemeli.
Az is jó megoldás, hogy ha használom az excel keresőjét, akkor a keresési eredmények között ugrálva emelje ki a találatot színnel (természetesen, ha továbblépek, akkor a formázás álljon vissza alapra).Vagy ezt makró nélkül is meg lehet oldani valami beállítás módosítással?
Előre is köszönöm.

UI.: Az excel tábla kb 2ezer soros és kb 18 oszlopból áll.
blabla -
Delila_1
veterán
-
Pityke78
őstag
-
Delila_1
veterán
-
Pityke78
őstag
-
Delila_1
veterán
-
Pityke78
őstag
Sziasztok!
Hogyan tudom kiszámoltatni két cellának a különbségét percben, amik időformátumban vannak megadva óra:perc-ben.
pl:
A1: 10:10
B1: 12:30
C1: 140 (percet adjon eredményül)Köszönöm
Új hozzászólás Aktív témák
-
23400 - 23301
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 30001 30000 - 28001 28000 - 26001 26000 - 25901 25900 - 25801 25800 - 25701 25700 - 25601 25600 - 25501 25500 - 25401 25400 - 25301 25300 - 25201 25200 - 25101 25100 - 25001 25000 - 24901 24900 - 24801 24800 - 24701 24700 - 24601 24600 - 24501 24500 - 24401 24400 - 24301 24300 - 24201 24200 - 24101 24100 - 24001 24000 - 23901 23900 - 23801 23800 - 23701 23700 - 23601 23600 - 23501 23500 - 23401 23400 - 23301 23300 - 23201 23200 - 23101 23100 - 23001 23000 - 22901 22900 - 22801 22800 - 22701 22700 - 22601 22600 - 22501 22500 - 22401 22400 - 22301 22300 - 22201 22200 - 22101 22100 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- OS, alkalmazások
- Microsoft Excel topic
- (kiemelt téma)
Hirdetés
- Napelem
- Háztartási gépek
- Xbox tulajok OFF topicja
- PROHARDVER! feedback: bugok, problémák, ötletek
- gban: Ingyen kellene, de tegnapra
- Milyen billentyűzetet vegyek?
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Android alkalmazások - szoftver kibeszélő topik
- Windows 11
- Prohardver app (nem hivatalos)
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- The Elder Scrolls Online Imperial Collector s Edition
- HP. Laptop. i5. Model: 15-da1002nq
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Minden szoftver mellé teljesen audit és NIS2 biztos, jogilag hiteles licencigazolást adunk át!
- GYÖNYÖRŰ iPhone 13 Pro Max 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS4160
- AKCIÓ! Intel Core i7 6700K 4 mag 8 szál processzor garanciával hibátlan működéssel
- Lenovo X280 12" - i7 8550U, 16GB RAM, 256-512GB SSD, jó akku - számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




szóval csináltam egy oda vissza oda bakugrást 

magamtól meg nem igen megy



