- Motorola Edge 50 Neo - az egyensúly gyengesége
- Apple Watch
- Motorola Razr 60 Ultra - ez a kagyló könnyen megfő
- One mobilszolgáltatások
- Honor 400 Pro - gép a képben
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Azonnali mobilos kérdések órája
- Íme az új Android Auto!
- Mobilhasználat külföldön
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
-
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
DasBoot #54438 üzenetére
Szia,
Nem hinném hogy tud segíteni, de ez a makró megnézi a képleteket tartalmazó cellákat és próbál bennük hibát találni. Az eredményt az immediate ablakba írja ki.
A CheckFormula függvényben 4 általános hiba ellenőrzés van:
1) a képlet nem megfelelően kezdődik
2) zárójelek nincsenek párban
3) körkörös hivatkozás van a cellában
4) a fájl hívatkozás érvénytelenSub ListFormulas()
Dim wsCurrent As Worksheet
Dim rngFormula As Range
For Each wsCurrent In ThisWorkbook.Worksheets
With wsCurrent
'nézzük elöször hogy van-e hibát tartalmazó cellát
On Error Resume Next
Set rngFormula = .Cells.SpecialCells(xlCellTypeFormulas, 16)
On Error GoTo 0
If Not rngFormula Is Nothing Then
Call PrintFormulas(rngFormula, 100)
End If
'nézzük a nem hibát tartalamazó cellákat
On Error Resume Next
Set rngFormula = .Cells.SpecialCells(xlCellTypeFormulas, 7)
On Error GoTo 0
If Not rngFormula Is Nothing Then
Call PrintFormulas(rngFormula, 100)
End If
End With
Next wsCurrent
End Sub
Sub PrintFormulas(rng As Range, counter As Long)
Dim r As Range, c As Long
Dim keplet As String, hiba As String
c = 1
For Each r In rng
keplet = r.Formula2
hiba = CheckFormula(keplet, r.Address)
If hiba <> "" Then
Debug.Print "Hely: " & r.Parent.Name & r.Address & ", Hiba: " & hiba & ", Képlet: " & keplet
End If
c = c + 1
If c > counter Then Exit For
Next r
End Sub
Function CheckFormula(str As String, loc As String) As String
CheckFormula = ""
'nézzük hogy mivel kezdõdik a képlet
If InStr(1, "=+-@", Left(str, 1)) = 0 Then CheckFormula = "Elsõ karakter hibás"
'képletben párosával kell lennie a zárójeleknek
Dim leftBracket
leftBracket = Len(str) - Len(Replace(str, "(", ""))
If Len(str) - Len(Replace(str, ")", "")) <> leftBracket Then CheckFormula = "Zárójel nincs párban"
'körkörös hivatkozás: képletben saját cella hivatkozás nem lehet
'hivatkozás lehet: A1, $A$1 formátumban, töröljük a $ jeleket az ellenõrzéshez
If InStr(1, Replace(str, "$", ""), Replace(loc, "$", "")) > 0 Then CheckFormula = "Körkörös hivatkozás"
'keressünk fájl hivatkozást a képletben
Dim filePath As String
If InStr(1, str, "[") > 0 Then
filePath = Mid(str, 2, InStr(1, str, "]") - 1)
'töröljük a [ ] ' jeleket
filePath = Replace(Replace(Replace(filePath, "[", ""), "]", ""), "'", "")
'létezik a fájl?
If Len(filePath) > 0 Then
If (Dir(filePath) = "") Then CheckFormula = "Fájl nem létezik"
End If
End If
End Function
-
Fferi50
Topikgazda
válasz
DasBoot #54436 üzenetére
Szia!
Ha ez az üzenet, akkor bizony még van valahol valami, - esetleg rejtett - hiba. Próbálj olyan cellákat keresni, amelyekben #Hibaüzenet jelenik meg az eredmény helyén.
A gyanús képleteknél használhatod a Képletkiértékelő lehetőséget.
Lehetséges, hogy olyan munkalapra, fájlra hivatkozol ami korábban helyesen benne volt a képletben, de közben eltávolították vagy áthelyezték, más útvonalon lenne elérhető.
Minden munkalapnál ezt a hibaüzenetet kapod vagy csak egynél?
Üdv.
Ps. Ilyenkor sajnos csak sziszifuszi munkával határolható be a hiba helye. -
karlkani
aktív tag
válasz
DasBoot #51908 üzenetére
Meg kellene osztani a követelményeket, akkor tudnának segíteni a fórumtársak, akik értenek a makróhoz. Sajnos ez ügyben nem tudok segíteni (nem igazán értek hozzá), általában itt kérek segítséget, vagy privátban a topikgazdától, ha valamit meg szeretnék oldani makróval.
-
Delila_1
veterán
válasz
DasBoot #51899 üzenetére
Kiegészítettem bela85 linkelt makróját úgy, hogy a számokat emelkedő sorrendbe rakja.
Sub LottoSzamok()
Dim Rng As Range, WorkRng As Range, xNumbers(49) As Integer, xTitleId As String
Dim xIndex As Integer, xNum As Integer, Cim As Range, Lapnev As String
Lapnev = Selection.Worksheet.Name
On Error Resume Next
xTitleId = "Véletlen számok"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Melyik cellában kezdődjön?", xTitleId, WorkRng.Address, Type:=8)
Set WorkRng = WorkRng.Range("A1")
For xIndex = 1 To 49
xNumbers(xIndex) = xIndex
Next
For xIndex = 1 To 6
xNum = 1 + Application.Round(Rnd * (49 - xIndex), 0)
WorkRng.Offset(0, xIndex - 1).Value = xNumbers(xNum)
xNumbers(xNum) = xNumbers(50 - xIndex)
Next
Set Cim = Range(WorkRng.Range("A1"), WorkRng.Offset(0, 5))
Range(Cim.Address).Select
ActiveWorkbook.Worksheets(Lapnev).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(Lapnev).Sort.SortFields.Add2 Key:=Range(Selection.Address), _
SortOn:=xlSortOnValues, Order:=xlAscending
With ActiveWorkbook.Worksheets(Lapnev).Sort
.SetRange Range(Selection.Address)
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
End Sub
-
Delila_1
veterán
válasz
DasBoot #25262 üzenetére
Nézd meg ezt:
Function LongDec2Bin(ByVal nIn As Long, Optional nBits As Long = 0&) As Variant
'J.E. McGimpsey műve, és Harlan Grove módosítása
Dim nReqBits As Long
Dim sOut As String
Dim sBit As String
Dim bNeg As Boolean
Dim i As Long
If nIn < 0& Then
bNeg = True
nIn = -(nIn + 1&)
End If
If nIn = 0& Then
nReqBits = 1&
Else
nReqBits = Int(Log(nIn) / Log(2&)) + 1& - bNeg
End If
If nBits <= 0& Then nBits = nReqBits
If nBits >= nReqBits Then
If bNeg Then
sOut = String(nBits, "1")
sBit = "0"
Else
sOut = String(nBits, "0")
sBit = "1"
End If
For i = nBits To (nBits - nReqBits + 1&) Step -1
If (nIn - 2& * (nIn \ 2&)) > 0 _
Then Mid(sOut, i, 1&) = sBit
nIn = nIn \ 2&
Next i
LongDec2Bin = sOut
Else
LongDec2Bin = CVErr(xlErrNum)
End If
End Function -
Fferi50
Topikgazda
válasz
DasBoot #25265 üzenetére
Szia!
Dec2Bin csak 10 számjegyig jó. E fölött be kell vetned az általános iskolában tanult ötletet - maradékos osztással megkeresed a számjegyeket és egymás mellé írod egy szövegben.
Azaz kiindulsz az adott számból: A1 cella. Mellé írod (B1 cella) a = maradék(A1;2) képletet. Alá pedig az int(A1/2) képletet, ezt végighúzod az oszlopokon addig, hogy az osztás eredménye 1 legyen.
Ezután a B oszlop eredményét visszafelé haladva összefűzöd.Persze makróval ez gyorsabb.
Üdv.
-
Apollo17hu
őstag
válasz
DasBoot #22310 üzenetére
De válaszolok, nehogy legközelebb is miattam puffogj. A "Magyarul?" nálam meg sem közelíti a normális kategóriát.
Légy szíves? Vagy: megtennéd, hogy magyarul is leírod? Számos lehetőség van, én úgy válaszoltam, ahogy a kérdésed feltetted.Azon meg konkrétan beszarok, hogy még arra is vetted a fáradságot - ahelyett, hogy ideiglenesen angolra állítottad volna az Excel-ed -, hogy privát üzenetben személyeskedj.
-
Delila_1
veterán
válasz
DasBoot #21919 üzenetére
Talán így érthetőbb:
Ha jobb(g10;1)<>„k” ÉS jobb(g10,1)<>„M” (nincs prefixum a G10 végén)
akkor a cella értéke legyen g10*2*PI()
Ellenkező esetben
ha jobb(g10;1)=”k”
akkor a cella értéke legyen bal(g10;hossz(g10)-1)*2*PI()*1000
ellenkező esetben (itt már csak M lehet az utolsó karakter)
a cella értéke legyen bal(g10;hossz(g10)-1)*2*PI()*1000000
feltétel vége
Feltétel végeLehet még egy halom hiba, például nincs levédve az ellen, ha valaki a szám után egy J karaktert visz be, vagy akár egy szóközt.
-
Új hozzászólás Aktív témák
Hirdetés
- Amazon
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Renault, Dacia topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Windows 11
- 24 Hours of Le Mans
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- exHWSW - Értünk mindenhez IS
- Kerékpárosok, bringások ide!
- További aktív témák...
- Csere-Beszámítás! Asus Rog Strix RTX 3070Ti 8GB GDDR6X Videokártya!
- BESZÁMÍTÁS! Gigabyte A620M R5 7600 32GB DDR5 512GB SSD RTX 4070 12GB ZALMAN S2 TG EVGA 650W
- PlayStation Plus Premium előfizetés 3291 Ft / hó áron!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- BESZÁMÍTÁS! 2TB Samsung 980 PRO NVMe SSD meghajtó garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest