- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Sony Xperia 1 VII - Látod-e, esteledik
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Honor 400 Pro - Gép a képben
- Honor 400 Pro - Gép a képben
- Milyen okostelefont vegyek?
- iPhone topik
- A Lite-nál is lájtosabb Honor 400 érkezett
Hirdetés
-
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
-
Mutt
senior tag
válasz
andreas49 #48996 üzenetére
Szia,
Tedd be a fájlba a lenti UDF-et, majd használd így:
Function TextPart(InputText, Optional Separator As String = " ", Optional PartStart As Long, Optional PartEnd As Long)
'Separator ha nincs megadva akkor szóközként értelmezzük
Dim arraySplit
Dim vFelsoMeret As Long
Dim i As Long
Dim txtResult As String
'szétszedjük a szöveget az elválasztójel alapján
arraySplit = Split(InputText, Separator)
'megnézzük hogy hány részre szedhető
vFelsoMeret = UBound(arraySplit)
If PartEnd = 0 Then PartEnd = PartStart
'ha az utolsó utáni darabot kérik, akkor is az utolsót adjuk
If PartEnd >= vFelsoMeret + 1 Then PartEnd = vFelsoMeret + 1
'ha a legelső darab előtti kell, akkor is az elsőt adjuk vissza
If PartStart <= 0 Then PartStart = 0
'megadjuk a kért részt
If PartEnd > PartStart Then
txtResult = ""
For i = PartStart To PartEnd - 1
txtResult = txtResult & arraySplit(i - 1) & Separator
Next i
TextPart = txtResult & arraySplit(PartEnd - 1)
Else
TextPart = arraySplit(PartStart - 1)
End If
End Functionüdv
Ps. Microsoft365-ben van már szövegdaraboló függvény is.
-
Mutt
senior tag
válasz
andreas49 #48984 üzenetére
Szia,
Ezt próbáld meg. A kommentek alapján tudod módosítani.
Sub vissza()
Dim wsTOC As Worksheet
Dim ws As Worksheet
Dim i As Long, c As Long
Dim result As Range
Dim back As Range
'a munkalap neve, ahíol megtalálhatók a lapok nevei, ezt javítsd a megfelelőre
Const TOC = "Start"
Set wsTOC = Worksheets(TOC)
'végig futunk a munkalapokon
For i = 1 To Worksheets.Count
Set ws = Worksheets(i)
'csak más nevű munkalapok érdekelnek
If ws.Name <> TOC Then
'keressük meg helyét a munkalapnak az összesítőn
Set result = wsTOC.Range("A:A").Find(ws.Name)
'ha nincs meg akkor ugorjuk át
If Not result Is Nothing Then
Set back = ws.Range("A2")
'ha üres lenne a cella akkor írjuk bele ezt, ha nem kell akkor töröld ki
If back = "" Then back = "vissza"
'ha már lenne hivatkozás, akkor töröljük a korábbit
If back.Hyperlinks.Count > 0 Then back.Hyperlinks.Delete
'adjuk hozzá a linket
back.Hyperlinks.Add Anchor:=back, Address:="", SubAddress:="'" & TOC & "'!" & result.Address
End If
End If
Next i
'nem kötelező de szüntessük meg az objektumokat
Set back = Nothing
Set result = Nothing
Set ws = Nothing
Set wsTOC = Nothing
End Subüdv
-
Delila_1
veterán
-
válasz
andreas49 #48729 üzenetére
1. Tehát ha jól értem, akkor csak 1 db excel fájl okozza a galibát?
2. Hogy nyitod meg ezt a fájlt, duplaklikk az intézőben rajta és indul az excel vagy Excel-t elindítod, és onnan nyitod meg? Mindkét esetben gond van?
3. Futtasd admin joggal az excel-t és így, az excel-ből próbáld megnyitni, ekkor is összeomlik?
4. elküldheted a LOG fájlt az email címemre(adatlapomon megtalálod), ígérni nem tudok semmit, de belenézek -
válasz
andreas49 #48643 üzenetére
Hivatalos forrásból beszerzett Windows és Office van?
Letöltés: Windows 11 | Office (innen is lehet OS-ket tölteni)
Az OS Home vagy Pro?
Az Office pontos verziója? (365/2021/2019 stb)
W10 alá is ugyanazt az Office-t telepíted? (Gondolom igen, de megkérdem)
Az OS-t és az Office-t is frissítsd le naprakészre. -
Delila_1
veterán
válasz
andreas49 #48559 üzenetére
Másold be a makrót egy modulba az Összefoglaló szerint.
Sub Sorbeszuras()
Dim sor As Long, usor As Long, lepeskoz As Integer
lepeskoz = Application.InputBox("Hány üres sor legyen az adatok között?", "Üres sorok száma", , , , , , 1)
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 3 Step -1
Rows(sor & ":" & sor + lepeskoz - 1).Insert Shift:=xlDown
Next
End Sub
-
Pakliman
tag
válasz
andreas49 #48151 üzenetére
Szia!
Egy lehetőség:
=HA(DARABTELI($A$1:A1;A1)=1;SZUMHA(A:A;A1;B:B)/DARABTELI(A:A;A1);"")
Az első DARABTELI-nél FONTOS a $A$1:A1! Ez adja meg a dátum első előfordulását és csak ennél lesz átlag számolva. Természetesen működik e nélkül is.A sorazonosítót nem tudom igazítani. Egy megoldás van, ha az A oszlopban "lehúzod" az =SOR() függvényt majd az A oszlopra beállítod a függőlegesen középre igazítást.
-
Delila_1
veterán
válasz
andreas49 #47425 üzenetére
Lappy válaszán kívül 2 változat:
1. Kijelölöd a módosítható tartományt, és a cellaformázás védelem fülén kiveszed a pipát a zárolás elől, majd lapvédelmet adsz.
2. Alt+F11-gyel belépsz a makró szerkesztőbe. Bal oldalon kiválasztod a lapodat, majd a Properties ablakban (ha nem látszik, F4-gyel láthatóvá teszed) beállítod a ScrollArea (szerkeszthető) területet a kép szerint. Ennél makróbarátként kell mentened a fájlt.A ThisWorkbook laphoz pedig ez a makró kell:
Private Sub Workbook_Open()
Sheets(1).ScrollArea = "$A$1:$H$20"
End Sub
-
Fferi50
Topikgazda
válasz
andreas49 #47342 üzenetére
Szia!
Valószínűleg "láthatatlan" karakter vagy emelt szóköz van valamelyikben.
[Itt a segítség az adatok tisztításához]
Sajnos egy lépésben valószínűleg nem fog menni.
Üdv. -
Delila_1
veterán
válasz
andreas49 #47332 üzenetére
Ha nem számként vitted be eleve az adatokat, akkor nem lenne probléma. Azzal, hogy szöveg formátumúra alakítottad a cellákat, még számok maradtak.
Beszúrunk egy sort, ami egyenként szöveggé konvertálja a számokat, így már működni fog.Sub FelsoIndex_1()
Dim CV As Object, koztes
For Each CV In Range("E4:AL169")
CV = CV & ""
If Len(CV) = 2 Then CV.Characters(Start:=2, Length:=1).Font.Superscript = True
If Len(CV) = 3 Then CV.Characters(Start:=2, Length:=2).Font.Superscript = True
Next
End Sub
-
Delila_1
veterán
-
Delila_1
veterán
válasz
andreas49 #47327 üzenetére
Több tételnél ez a makró az utolsó karaktert felső indexbe teszi.
Ebben az esetben azA1:A10
tartományban működik.Sub FelsoIndex()
Dim kezd As Integer, sor As Integer
For sor = 1 To 10
If Len(Cells(sor, 1)) > 1 Then
kezd = Len(Range("A" & sor))
Cells(sor, 1).Characters(Start:=kezd, Length:=1).Font.Superscript = True
End If
Next
End Sub
-
Fferi50
Topikgazda
válasz
andreas49 #47243 üzenetére
Szia!
Ezt a makrót másold be egy modulba (vagy a munkalap kódlapjára).Sub kerescserel()
Dim wb As Workbook, ws As Worksheet, mit, mire
On Error GoTo hibas
mit = "": mire = ""
mit = Application.InputBox("Mit cseréljek", "Cserélés", mit)
If mit <> "" And mit <> "False" Then
mire = Application.InputBox("Mire cseréljem a: " & mit & " szöveget?", "Cserélés", mire)
If mire <> "" And mire <> "False" Then
Application.ScreenUpdating = False
For Each wb In Workbooks
For Each ws In Worksheets
ws.UsedRange.Replace what:=mit, replacement:=mire, lookat:=xlWhole
Next
Application.StatusBar = "Cserélem a " & mit & " " & mire & "a(z) " & wb.Name & " munkafüzetben!"
DoEvents
Next
End If
End If
Application.ScreenUpdating = True
Application.StatusBar = False
Exit Sub
hibas:
MsgBox "Hiba van: " & Error
End Sub
Meg kell adnod, hogy mit cseréljen, majd azt, hogy mire szeretnéd cserélni.
A cserélés csak teljes cellatartalomra vonatkozik, részekre nem. Nem érzékeny a kisbetű-nagybetű különbségre.
A makró minden nyitott munkafüzet minden munkalapján cseréli az adott szöveget.
Hozzá rendelheted egy billentyű kombinációhoz, akkor azzal gyorsan tudod hívni - vagy felteheted a menüszalagra is a beállítások - menüszalag - makrók útján.
Ha hibával megáll, akkor jelezz vissza légy szíves.
Remélem, tudod használni.
Üdv. -
Fferi50
Topikgazda
válasz
andreas49 #47241 üzenetére
Szia!
A kérdés az, hogy honnan tudja meg a makró, hogy mit és mire kell cserélni?
A keres/cserél (Ctrl+F) -hez hasonló bevitelre gondolsz vagy kijelölöd egy cellában pl. hogy mit kell cserélni és utána megadod, hogy mire?
(A rész cserélésnek lehetnek buktatói is, pl. ha a jk istván szerűben szeretnéd a jk-t cserélni, akkor előfordulhat, hogy a Majka jk része is "kalapács" - ra cserélődik.)
Persze minden csere előtt lehet kérdezni is - mint a keres/cserél funkciónál....
Kérdés tehát - hogyan kapja meg a keresési paramétereket a makró?
Üdv. -
Delila_1
veterán
válasz
andreas49 #47212 üzenetére
=HA(INDIREKT("'"&A1&"'!$Y$162")>INDIREKT("'"&A1&"'!$Y$163");INDIREKT("'"&A1&"'!$S$162");INDIREKT("'"&A1&"'!$S$163"))
A1-ben van a lap neve, azt folytathatod lefelé.
Az volt a bibi, hogy a lapnevet aposztrófok közé kell tenni. '2021'! plusz cellacím.
A képletnél úgy látszik, mintha az idézőjelek és aposztrófok között szóköz lenne, de nincs. -
Fferi50
Topikgazda
válasz
andreas49 #47160 üzenetére
Szia!
Ha jól értelmezem a kérdést, akkor a javaslatom a következő:
Egy segédoszlop első cellájába, ahol az adatok kezdődnek, írd be a mellette levő adatot.
Ezután a második cellában a képlet:
=Ha(A2="";B1;A2)
Ez húzható lefelé.
Ezután a segédoszlopot másolod, irányított beillesztés értéket ugyanoda - vagy az első oszlopra. Majd az első oszlopot/vagy a segédoszlopot törlöd - attól függően, hova illesztetted be az értéket.
Üdv. -
lappy
őstag
válasz
andreas49 #47097 üzenetére
Minden képlet
https://support.microsoft.com/hu-hu/office/a-k%C3%A9pletek-megjelen%C3%ADt%C3%A9se-%C3%A9s-kinyomtat%C3%A1sa-65a29965-b1b1-40db-9cb7-4fd051da3a5c
Csúszka
https://support.microsoft.com/hu-hu/office/g%C3%B6rget%C5%91s%C3%A1vok-elrejt%C3%A9se-vagy-megjelen%C3%ADt%C3%A9se-a-munkaf%C3%BCzetben-2101e630-fa9b-4d22-90e0-b110278bafa7 -
smnetbp
csendes tag
válasz
andreas49 #47075 üzenetére
Ha utana a Table1 - Table15 ig kitorlom, akkor mar a tulajdonsagainal ugy jelenik meg mint " csak kapcsolodas" es a hozzafuzes1 rendben mukodik tovabb es a tobbi nem jelenik meg tobbe. Viszont ez problema lehet tobb 100 erdemenyul kapott "table" eseteben, mert egyesevel kitorolni........ kicsit DOS 1.0 erzesem van
Tehat szerintem a Power Query -ben lehetne talan ezt beallitani ha Excel guru lennek
-
Pakliman
tag
válasz
andreas49 #46956 üzenetére
Szia!
Egy lehetőség...
Az sPath mappában lévő összes *.xls* fájlon végigmegy.
Megnyitja a fájlt, a benne lévő munkalapokon megkeresi és kicseréli az összes sMit (cserélendő) szöveget az sMire szövegre majd bezárja MENTÉSSEL a megnyitott táblázatot.Sub x()
Const sPath As String = "d:\_Egyéb\"
Dim sName As String
Dim sFullName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim r As Range
Dim sAddr1 As String
Dim sMit As String
Dim sMire As String
sMit = "keresendő szöveg"
sMire = "erre cseréljük"
sName = Dir(sPath & "*.xls*")
Do Until sName = ""
sFullName = sPath & sName
Set wb = Workbooks.Open(Filename:=sFullName)
For Each ws In wb.Worksheets
With ws.Cells
Set r = .Find(What:=sMit, LookIn:=xlValues, LookAt:=xlPart)
If Not r Is Nothing Then
sAddr1 = r.Address
Do
r.Value = Replace(r.Value, sMit, sMire)
Set r = .FindNext(r)
Loop While Not r Is Nothing
End If
End With
Next ws
wb.Close SaveChanges:=True
sName = Dir
Loop
End Sub -
föccer
nagyúr
válasz
andreas49 #46956 üzenetére
Ha jól értem akkor az összes vezétés/keresztnév párosítást ki kell egyelni, hogy mindenből csak 1 szerepeljen?
ha csak egyszer kell megcsinálni, akkor lehet egyszerűbb ha összevágod 1 munkalapra a teljes adattáblát, összefűzöd a vezeték és keresztneveket, majd használd az adatok/azonosak eltávolítását (lehet nem pontos a név)
Macerás, összerajni egy munkalapra, de billentyűzetről gyorsan be lehet tanulni a mozdulatsort. A1 kijelölve, ctrl+END-el adatsor vége, ctrl+C másilás, Alt+tab-al átlépsz arra ahol össze fűzöd az adatokat. ctrl+ lefele nyíllal lépz az urolso sorra, majx ctrl+v-vel beszúrsz. Ha begyakorolod, akkor pár 10 másodpercenként meglehetsz 1-1 munkalappal. Kicsit unalmas, de 1-2 óra altt le lehet darálni. Én sokszor lusta vagyok makrózni.
üdv, föccer
-
belinho
senior tag
válasz
andreas49 #45935 üzenetére
Köszi!
Gondoltunk már erre, de ezt nem lehet szerkeszteni, csak megnézni.
2003 esetén volt anno valami converter, amivel meg tudtuk anno nyitni az újabbal készült dokumentumokat szinte átalakítás nélkül. 2007-hez nincs esetleg valami ilyesmi?
Szinte minden használható volt eddig, azért a néhány dokumentumért nem nyugdíjaznánk, bár tényleg koros már. -
ny.janos
tag
válasz
andreas49 #45861 üzenetére
Szerintem nincs itt semmi anomália. Nem csak az ISO rendszer létezik, amit te paramétert korábban megadtál, az pedig nem az ISO rendszer szerint számol.
-
ny.janos
tag
válasz
andreas49 #45857 üzenetére
Lappy javaslatát (eredmény típusa: 21) próbáltad? (Office 365-öm nincs, de 2019-ben hiba nélkül működik, míg az 1-es vagy 2-es típus a 2019-es excelben is azt az eredményt adja, amit te írtál).
Egyébként létezik az ISO.HÉT.SZÁMA függvény is, ott nem kell eredmény típusát megadnod.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
andreas49 #45619 üzenetére
Szia!
Mi vele a problémád?
Ha a cimkék összeérése a gond, akkor pl. megváltoztathatod a tengelyen a mértékegységet:
Tengely formázása - Nagyságrend. Itt kiválaszthatod hogy milyen legyen a megjelenés.
Ezen kívül meg lehet oldani, hogy minden másodikhoz legyen cimke, esetleg váltogatni lehet a megjelenés helyét - egyik felül, másik alul vagy középen.
Üdv. -
Fferi50
Topikgazda
válasz
andreas49 #45440 üzenetére
Szia!
Kijelölöd a kimutatás alá és elé eső első cellát. Pl kimutatás vége H8, akkor az I9 cellát.
Ezután Nézet-Panelek rögzítése - Ablaktábla rögzítése.
Ebben az esetben az A-I oszlop és felső 8 sor mindig látható, a többi görgethető.
Számolj azzal. ha a rögzített oszlopok nem férnek el a képernyőn, akkor nem láthatod az elől levő oszlopokat láthatóvá görgetni.
A görgetés csak a rögzített cellától lefelé és jobbra működik.
Próbáld ki, aztán eldöntöd, hogyan kell elhelyezni a kimutatást a munkalapon, hogy jó legyen a görgetés.
A rögzítést ugyanezen az úton tudod megszüntetni az Ablaktábla feloldása menüponttal.
Üdv.
Üdv. -
lappy
őstag
válasz
andreas49 #45062 üzenetére
Itt van egy ilyen kód amire szükséged van
Sub InsertRowsAtCursor()
Answer = InputBox("How many Rows to insert? (50 Rows maximum)")
NumLines = Int(Val(Answer))
If NumLines > 50 Then
NumLines = 50
End If
If NumLines = 0 Then
GoTo EndInsertLines
End If
Do
Selection.EntireRow.Insert
Count = Count + 1
Loop While Count < NumLines
EndInsertLines:
End Sub -
Fferi50
Topikgazda
válasz
andreas49 #40498 üzenetére
Szia!
Ha azt szeretnéd, hogy növekvő "névsor" szerint legyenek az értékek, akkor a H oszlop képletében ne + hanem - jelet használj:
=F5+SOR()*0,0001 helyett =F5-SOR()*0,0001
A formázást vagy makróval lehet átvinni vagy feltételes formázási szabályokat alkotsz megfelelő feltételekkel pl. cellák formázása képlet alapján.
Üdv.
-
Delila_1
veterán
-
lappy
őstag
-
Mutt
senior tag
válasz
andreas49 #39686 üzenetére
Szia,
Tömbfüggvénnyel a megoldás az általad vázolt problémára:
=SZÖVEGÖSSZEFŰZÉS(", ";1;HA(DARABTELI(B2:AA2;SOR($A$1:$A$13)-1);SOR($A$1:$A$13)-1&"="&DARABTELI(B2:AA2;SOR($A$1:$A$13)-1);""))
Ha betűket (A-Z) akarsz megszámolni, akkor ez a képlet (B8:AA8 a tartomány ahol számolni kell):
=SZÖVEGÖSSZEFŰZÉS(", ";1;HA(DARABTELI(B8:AA8;KARAKTER(64+SOR($A$1:$A$27)));KARAKTER(64+SOR($A$1:$A$27))&"="&DARABTELI(B8:AA8;KARAKTER(64+SOR($A$1:$A$27)));""))
üdv
-
Laciahegyrol
csendes újonc
válasz
andreas49 #39680 üzenetére
Szia!
Egy ötlet:
A darab függvény megszámolja, hány cella van a tartományban, ami számot tartalmaz.
A darab2 függvény megszámolja hány nem üres cella van a tartományban.
Hány szám: darab függvény.
Hány betű: összesből (darab2 függvény) kivonod a számok (darab függvény) számát.Üdv: Laci
Új hozzászólás Aktív témák
- Autós topik
- Háztartási gépek
- Mazda topik
- A lemondást javasolja az Intel vezetőjének Donald Trump
- Haditechnika, harcászat
- Gitáros topic
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Robotporszívók
- Eredeti játékok OFF topik
- További aktív témák...
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- BESZÁMÍTÁS! LG 24MB35PM 60Hz FHD IPS 5ms monitor garanciával hibátlan működéssel
- Dell 14 Latitude 7420 FHD IPS i7-1185G7 4.8Ghz 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- Bomba ár! Lenovo ThinkPad T450s - i5-5GEN I 12GB I 500GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Xbox Ultimate előfizetések
Állásajánlatok
Cég: FOTC
Város: Budapest