-
Fototrend
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
-
Apollo17hu
őstag
Sziasztok!
Excel fájlt szeretnék kirakni Sharepointra. Eddig működött a dolog, de a fájl folyamatosan új munkalapokkal bővül. Az egyik bővítés után a Sharepoint hibásnak (corrupt) véli az Excel fájlt.
Némi próbálkozás után rájöttem, hogy az új munkalapon lévő védett terület nem tetszik neki. Ha feloldom a lapvédelmet, és törlöm a korábban védett területet, akkor ismét használható Sharepointon a fájl. Az a problémám, hogy a lapvédelem feloldását követően még mindig maradnak valamiféle "maradványadatok"*, amik a védelemre vonatkoznak, és ezek továbbra is blokkolják a Sharepointos megjelenítést.
Két lehetőségem van: újrakészítem nulláról a munkalapot lapvédelem nélkül, vagy valahogy kipucolom a meglévő - de már nem védett - fájlból a lapvédelemből hátramaradt információt. Hogyan tudom megtenni az utóbbit?
*A maradványadatokat az Excel Spreadsheet Compare 2013 alkalmazás jelzi, ebből gyanítom, hogy ez a probléma.
-
RAiN91
őstag
Sziasztok
"A" oszlopban mindenféle szám van egymás alatt.
"B1" cellában van egy adott szám, amit ki kellene keresnem "A" oszlopban, és az attól 3 cellával lejjebb lévő számot szeretném megkapni. Megoldható valami egyszerű függvénnyel?
Köszönöm előre is.
[ Szerkesztve ]
-
andreas49
senior tag
Sziasztok,
Az alábbi problémában kérek segítséget:
Van egy dátum, pl. a1-ben: 2017.07.10. Szeretném szétbontani b1, c1 és d1 oszlopokba Év , Hó , nap adatokra
Milyen függvény vagy képlet alkalmazható.
Előre is köszi a segítséget
andreas49HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
Sgt. Chris
aktív tag
válasz Fferi50 #35697 üzenetére
Fferi50!
Köszönöm a "megoldókulcsot" a problémámhoz! Működött elsőre!
Azért nyugtass meg, hogy ez nem az "alap-excel" műveltség szerves része!?
ASUS ROG Strix B350-F, AMD Ryzen 5 1600, 2*8GB DDR4 Corsair Vengeance LPX, ASUS RX470 4GB STRIX, Samsung EVO 970 250GB+Adata SP920 128GB SSD, 1TB+2TB WD HDD, FSP Hyper 600W
-
Fferi50
őstag
válasz Sgt. Chris #35706 üzenetére
Szia!
Nem bizony és nem is Excel. Ha jól emlékszem, hosszabb kutakodás és makrórögzítések után a Word-ben találtam meg hozzá a megoldást anno. (Ami egyébként viszonylag logikus, hiszen a körlevél maga Word objektum, illendő, hogy ott legyenek meg a tulajdonságai...)
Üdv.
-
nagyzoliph
csendes tag
Sziasztok! Segítséget szeretnék kérni. Van egy képletem aminek ha az eredménye minusz lesz szeretném ha a cellába nullát irna az excel mint eredmény.
képlet: =HAHIBA(FKERES(B20;SUM!M6:AJ1012;24;0);"–")
Próbálkoztam de nem sikerült megoldanom.
Hogyan kellene megirnom a képletet.
Előre is köszi
-
Fferi50
őstag
válasz nagyzoliph #35709 üzenetére
Szia!
Talán meg kellene vizsgálnod, hogy a feltételed teljesül-e:
Pl.
=HA(HAHIBA(FKERES(B20;M6:AJ1012;24;0);"–")<0;0;HAHIBA(FKERES(B20;M6:AJ1012;24;0);"–"))
Ezen kívül azt gondolom, nem ártana a keresési tartományt abszolúttá tenni ($ jelek).
Üdv.[ Szerkesztve ]
-
nagyzoliph
csendes tag
válasz Fferi50 #35710 üzenetére
Szia! Ahogy te írtad a képletet úgy is próbáltam és '-' ír ki( tehát hibát dob ki gondolom a hahiba képlet miatt. Ebben a cellában az eredményem ha nem bántom a képletet -8, tehát ha jól sikerülne megirnom a ha függvényt akkor kikéne dobnia a 0 eredményt. De mindig a hahiba feltétele miatti '-' jelet irja a cellába.
-
lappy
őstag
válasz nagyzoliph #35711 üzenetére
Használd az Fferi által megadott képletet, nálam tökéletesen működik.
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
Fferi50
őstag
válasz nagyzoliph #35711 üzenetére
Szia!
Megpróbáltad bemásolni a képletet a munkafüzetedbe? Igaz, a másik munkalapra hivatkozás lemaradt belőle, de gondoltam azt tudod pótolni:
=HA(HAHIBA(FKERES(B20;SUM!M6:AJ1012;24;0);"–")<0;0;HAHIBA(FKERES(B20;SUM!M6:AJ1012;24;0);"–"))
A HAHIBA nem okozhat gondot. Eredménye vagy "-" vagy egy szám. A HA függvény megnézi, hogy az eredmény kisebb-e, mint 0, ha igen, akkor 0 lesz a képlet végeredménye. Ha nem kisebb, akkor a második HAHIBA függvény (ami az elsővel azonos) eredménye lép életbe, ami vagy egy szám, vagy "-".Csak jelzem még, hogy Excel és VBA által használt neveket nem tanácsos "saját használatba venni" (itt pl. a SUM), mert azzal csak hibalehetőséget teremtesz.
Üdv.
[ Szerkesztve ]
-
Acustic
újonc
Sziasztok!
Most már napok óta nem tudok tovább lépni egy kérdés megoldásán. Ha tudtok, légyszi segítsetek. Már az is jó, ha azt mondjátok, hogy nem lehetséges Excelben, vagy hogy másfele induljak el.
Van egy A oszlopom. Három névvel. (john,Mike,Dave)
Van egy H oszlopom ahol szerepel ez a három név. (john, Mike,Dave) H1,H2,H3
Van egy I oszlopom amiben csak formátum szerepel. ( "I1" sárga kitöltés, a betu fekete, és felülre és jobra rendez) A másik: "I2" nincs kitöltés, felülre és balra rendez, és a betu benne piros.Úgy kezdem a munkámat, hogy kopizom a nevet (H2), majd a formátumot, ("I1") és kicserélem az összes John-t erre a formátumra, majd a formátumot kicserélem "I2" re, és a dokumentum legelso cellájába lépve, elindítom a keresést, hogy megtalálja az elso MIke-ot.
A következQ lépés, hogy kicserélem. Ekkor átváltázik piros betu, balrarendez stb.
Ezt szeretném makrózni, de sehogy sem sikerül.
Illetve sikerül, de amikor Dave-vel szeretném ugyanezt megcsinálni, akkor is Mike-ra fogja kicseréllni.A legjobb az lenne, ha a formátum cserét onnan indítaná, ahonnan én szeretném. Legyen az H1, vagy H25. A lényeg, hogy a szövegben ("A") beállt állapot az legyen, hogy minden azonos név sárga legyen, és ott legyek az oszlopban ("A") megjelenQ legelso névnél.
Esténként úgy fekszem le, hogy még mindig ezen gondolkodom, ami valamilyen szinten jó, .....de tovább kellene most már lépnem.
Ha azt ajánljátok, hogy Balaton felé induljak el, azt is megfontolom ))Köszönöm. Attila
-
-
Acustic
újonc
válasz Fferi50 #35715 üzenetére
Sub névminta()
'
' névminta Makró
' ctrl+n a neveket előbb besárgítja, majd kereső funkcióra áll, megtalálja az első nevet.
'
' Billentyűparancs: Ctrl+n
'
Range("H1").Select
Selection.Copy
Range("I1").Select
Application.ReplaceFormat.Clear
Application.ReplaceFormat.NumberFormat = "General"
With Application.ReplaceFormat
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
End With
With Application.ReplaceFormat.Font
.Name = "Arial"
.FontStyle = "Normál"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.ThemeColor = 2
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Application.ReplaceFormat.Borders(xlLeft).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlRight).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlBottom).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlDiagonalDown).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlDiagonalUp).LineStyle = xlNone
With Application.ReplaceFormat.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Application.ReplaceFormat.Locked = True
Application.ReplaceFormat.FormulaHidden = False
Columns("A:A").Select
Selection.Replace What:="John", Replacement:="John", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Application.ReplaceFormat.NumberFormat = "General"
Range("I2").Select
Application.ReplaceFormat.Clear
Application.ReplaceFormat.NumberFormat = "General"
With Application.ReplaceFormat
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
End With
With Application.ReplaceFormat.Font
.Name = "Arial"
.FontStyle = "Normál"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Application.ReplaceFormat.Borders(xlLeft).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlRight).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlBottom).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlDiagonalDown).LineStyle = xlNone
Application.ReplaceFormat.Borders(xlDiagonalUp).LineStyle = xlNone
With Application.ReplaceFormat.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Application.ReplaceFormat.Locked = True
Application.ReplaceFormat.FormulaHidden = False
Range("A1").Select
Cells.Find(What:="John", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase _
:=False, SearchFormat:=False).Activate
End SubA keresés Mindig a H1 ben lévo szóra indulna el, ami változik, hiszen a "h" oszlopban szereplo nevek érkezési sorrendben változnak. Hogy értheto legyen ....... Szinkront rendezek. Jon egy színész, és azt mondom, hogy van egy John nevu karaktere. Besárgítom neki az összes John-t, hogy jobban átláthato legyen számára. Amikor pedig felvettük azt a sort, akkor átváltozik pirosra a név. ebbbol tudom, hogy már fölvettuk azt a szereplot. De mivel egy nap 60 szor kell ezt megcsinálni, az már fáraszto. Minden munkafolyamatra van már kész makro-m ....de ez már naggyon megakasztott ) köszönöm a segítségedet ......az is nagy dolog, ha legalább azt meg tudod mondani, hogy merre induljak el. MÁr az angol oldalakat is végignéztem, de valószínuleg nem látom át a lehetoségeket. .....
-
Delila_1
Topikgazda
válasz Acustic #35716 üzenetére
Ha jól értem, a H oszlopba írod be az aktuális szereplő nevét. Ekkor az A oszlopban lévő, ilyen nevű szereplőt tartalmazó cellák váljanak sárga hátterűvé, felül jobbra rendezetté. Mikor új nevet adsz meg a H oszlopban, az előbbi cellák legyenek piros hátterűek, felül balra rendezettek, és az újonnan megadott név cellái sárgák, felül jobbra rendezettek.
A laphoz rendeld a makrót (lásd a téma összefoglalóban).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ter As Range, CV As Object
If Target.Column = 8 Then
Set ter = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each CV In ter
If CV.Interior.Color = vbYellow Then
CV.Interior.Color = vbRed
CV.HorizontalAlignment = xlLeft
CV.VerticalAlignment = xlTop
End If
If CV = Target Then
CV.Interior.Color = vbYellow
CV.HorizontalAlignment = xlRight
CV.VerticalAlignment = xlTop
End If
Next
End If
End SubRemélem, így gondoltad. Ha nem, akkor vagy segít valaki, vagy délután én átírom a makrót.
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
őstag
válasz Acustic #35716 üzenetére
Szia!
Ez jó irány. A replace metódus what paramétere helyére ne konkrét nevet írj, hanem annak a cellának az értékére hivatkozz, amiben a név van:
What:=Range("H1").Value, Replacement:=Range("H1").Value
Viszont a makrórögzítés egy csomó felesleges dolgot is beletesz.
Ennél sokkal rövidebb lehet.
Szerintem 2 makró kell, az egyik sárgít, a másik kiszedi a sárgát és pirosra váltja.
Kicsit később még visszajövök egy megoldás tervezettel.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Acustic #35716 üzenetére
Szia!
Az alábbi makrókat bemásolod egy modulba. Majd hozzárendelheted az általad kívánt billentyű kombinációhoz:
Public frm As CellFormat
Sub névminta()
'
' névminta Makró
' ctrl+n a neveket előbb besárgítja, majd kereső funkcióra áll, megtalálja az első nevet.
'
' Billentyűparancs: Ctrl+n
'
'Dim frm As CellFormat
Dim frm1 As Range, frm2 As Range
If frm Is Nothing Then Set frm = Application.ReplaceFormat
Set frm1 = Range("I1")
Set frm2 = Range("I2")
frm.Clear
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm1.HorizontalAlignment 'xlRight
.VerticalAlignment = frm1.VerticalAlignment ' xlTop
With .Font
.Name = frm1.Font.Name ' "Arial"
.FontStyle = frm1.Font.FontStyle ' "Normál"
.Size = frm1.Font.Size ' 12
.Color = frm1.Font.Color ' vbBlack
End With
.Borders.LineStyle = xlNone
With .Interior
.PatternColorIndex = frm1.Interior.PatternColorIndex ' xlAutomatic
.Color = frm1.Interior.Color ' 65535
End With
.Locked = True
.FormulaHidden = False
End With
Columns("A:A").Replace what:=Range("H1").Value, replacement:=Range("H1").Value, LookAt:=xlWhole, _
searchorder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Application.EnableEvents = False
Cells.Find(what:=Range("H1").Value, LookIn:=xlFormulas, LookAt _
:=xlWhole, searchorder:=xlByColumns, MatchCase _
:=False, SearchFormat:=False).Activate
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm2.HorizontalAlignment ' xlLeft
.VerticalAlignment = frm2.VerticalAlignment ' xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
With .Font
.Name = frm2.Font.Name ' "Arial"
.FontStyle = frm2.Font.FontStyle ' "Normál"
.Size = frm2.Font.Size ' 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
Application.EnableEvents = True
End Sub
Sub nevpiros()
'A H1 cellában levő nevet az A oszlopban "bepirosítja"
Dim frm1 As Range, frm2 As Range
If frm Is Nothing Then Set frm = Application.ReplaceFormat
Set frm1 = Range("I1")
Set frm2 = Range("I2")
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm2.HorizontalAlignment ' xlLeft
.VerticalAlignment = frm2.VerticalAlignment ' xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
With .Font
.Name = frm2.Font.Name ' "Arial"
.FontStyle = frm2.Font.FontStyle ' "Normál"
.Size = frm2.Font.Size ' 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
Range("A:A").Replace what:=Range("H1").Value, replacement:=Range("H1").Value, ReplaceFormat:=True
End SubA billentyű hozzárendelést neked kell megtenni.
Az első sor is fontos, ami a sub előtt van. Itt definiálunk egy olyan változót, amelynek az értéke megmarad mindaddig, amíg ki nem léptél az excelből.Ha még jobban automatizálni szeretnéd, akkor a következő két makrót a munkalap kódlapjára kell bemásolnod: (jobb egérgomb a munkalap fülön, kód megjelenítése)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 And Target.Row = 1 Then 'ha új nevet írsz a H1 cellába
Application.EnableEvents = False
névminta
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cl As Range
If Target.Column = 1 Then 'ha a H1 cellában levő névre léptél, az előzőt "bepirosítja"
If Target.Value = Range("H1").Value Then
If Target.Row > 1 Then
Application.EnableEvents = False
Set cl = Columns("A:A").Find(what:=Target.Value, after:=Target, searchdirection:=xlPrevious)
If Not cl Is Nothing Then cl.Replace what:=Target.Value, replacement:=Target.Value, ReplaceFormat:=True
Application.EnableEvents = True
End If
End If
End If
If Target.Column = 8 And Target.Row = 1 Then ' az utolsó nevet is elérted, ezért a H1 cellára ugrottál - az utolsó nevet is megváltoztatja
Set cl = Columns("A:A").Find(what:=Target.Value, after:=Columns("A:A").End(xlUp), searchdirection:=xlPrevious)
If Not cl Is Nothing Then cl.Replace what:=Target.Value, replacement:=Target.Value, ReplaceFormat:=True
End If
End SubAz első akkor lép működésbe, ha a H1 cellába beírsz egy nevet. Ekkor automatikusan megjelöli az A oszlopban mindazokat a cellákat, amelyben az a név van.
A második azt figyeli, hogy az új cellában, amire léptél, a H1 -ben levő név van-e. Ha igen, akkor az előző nevet megváltoztatja (pirosítja).
Ugyanígy jár el az utolsó névvel, ha a H1 cellára ugrasz.
Nem kell azonnal a következő névre (H1 cellára) ugrani, amikor a lefelé "sétálásban" ugyanarra a névre lépsz, akkor lép működésbe.Remélem érthető, ha nem, akkor kérdezz bátran.
Üdv.
-
Acustic
újonc
válasz Delila_1 #35717 üzenetére
Szia Delila!
MOst végeztem a melóval .....az agyam nem valami friss, de már annyira vártam, hogy legyen idQm belenézni a fórumba. ElQször is köszönöm a segítségeteket.
Egy dolgot elfelejtettem mondani Az a rész, hogy hogyan pirosítom a felvett szereplQt, már nem érdekes, mert - Ha már az aktuális szerepnév be van sárgázva és jobra fel van rendezve, és a csere-funkció beállt az elsQ sárga kockába, akkor egy csere okézásával, már csak a space-eket kell nyomkodnom, és automatikusan vált pirosra, és ugrik a következQ sárgára.
Nekem egy fontos dologra "van szükségem" ......hogy az általam kijelölt cellába pl. ("H1") beírt név társai, amik az A oszlopban szerepelnek random, más sok szereplQvel keveredve, - szintén besárguljanak. És, a csere táblában a név formátuma már pirosra álljon, és megkeresse a legelsQ sárga cellát. Ennnyi. Onnantól már én elindítom az egyes-cserét, és átírja automatikusan piros névre, és balra föl rendezi. .......húú, remélem értehtQ voltam.
Az a baj, hogy nagyon érdekel ez az egész, de nem látom még át ... HOlnap belevetem magam ......most már fáradt vagyok .....reggel 5 óta nyomom.....
Szia és még egyszer nagyon köszönöm.
Attila -
Delila_1
Topikgazda
válasz Acustic #35720 üzenetére
Szia Attila!
Az első makrót a laphoz kell rendelned. Mikor a H oszlopba beírsz, vagy bemásolsz egy nevet, akkor ez a cella, valamint az A oszlopban lévő, azonos tartalmú cellák háttere sárga lesz. Az első, A oszlopban lévő név cellája lesz kijelölt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ter As Range, CV As Object
If Target.Column = 8 Then
Set ter = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each CV In ter
If CV = Target Then
CV.Interior.Color = vbYellow
CV.HorizontalAlignment = xlRight
CV.VerticalAlignment = xlTop
End If
Next
Range(Target.Address).Interior.Color = vbYellow
Range(Target.Address).HorizontalAlignment = xlRight
Range(Target.Address).VerticalAlignment = xlTop
Range("A" & Application.WorksheetFunction.Match(Target, Columns(1), 0)).Select
End If
End SubA második makró modulba kerül. Ehhez rendelj billentyű kombinációt, aminek hatására indul a makró. Az aktuális cella háttere piros lesz, a kijelölés a következő, ilyen nevet tartalmazó cellára ugrik az A oszlopban. Mikor a kombinációval befejezted a szereplőhöz tartozó összes cella átszínezését, a H oszlopban is pirosra vált a név cellája, ez lesz kijelölt. Üzenetet kapsz, hogy a szereplő összes sora kész van.
Sub Piros()
Dim sor, nev As String
If Selection.Column = 1 Then
nev = Selection.Value
On Error GoTo KeszVan
sor = Range("A" & Selection.Row + 1 & ":A10000").Find(nev).Row
Selection.Interior.Color = vbRed
Selection.HorizontalAlignment = xlLeft
Cells(sor, "A").Select
End If
Exit Sub
KeszVan:
Selection.Interior.Color = vbRed
Selection.HorizontalAlignment = xlLeft
sor = Columns(8).Find(nev).Row
Cells(sor, "H").Interior.Color = vbRed
Cells(sor, "H").HorizontalAlignment = xlLeft
Cells(sor, "H").Select
MsgBox nev & " minden sora kész van.", vbInformation, "Értesítés"
End SubJó munkát! Üdv
Kati[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
sopruk
aktív tag
Sziasztok!
Nem nagyon értek az Excel függvényekhez, reménykedem, hogy tudtok benne segíteni.
Adott egy összeg banki befizetésekről. Sajnos nem tudni, hogy hány darab befizetésből tevődik össze.
Viszont megvannak a nyitott számlák az összegekkel.
Lehetséges e az összes variációt kipróbálni valami függvénnyel, hogy a nyitott tételeket variálva összeadva, melyekből jön ki a befizetett összeg?
Köszi előre is, ha tudtok segíteni!
[kép] -
Apollo17hu
őstag
válasz Apollo17hu #35723 üzenetére
Így tudod telepíteni a bővítményt, C oszlopot töltsd fel nullákkal, E5 lesz mondjuk a célcella, ebbe a
=SZORZATÖSSZEG(B5:B32;C5:C32)
képlet kerüljön, a solver beállításai pedig:A megoldás úgy működik, hogy a Solver próbálja a szorzatösszeg értékét folyamatosan közelíteni a megadotthoz (23.906). Ezt a változócellák (
C5:C32
) értékeinek módosításával éri el, de úgy, hogy ezek csak 0 és 1 értéket vehetnek fel, mert bináris korlátozást állítottunk be. Gyakorlatilag addig próbálgatja a 0 és 1 variációkat a szorzatösszegben, amíg el nem éri a kívánt értéket, vagy elég közel nem kerül hozzá.[ Szerkesztve ]
-
426os
őstag
Sziasztok!
Ha van egy az alábbi képen látható módon elnevezett, nem összefüggő range-em, akkor hogy tudok benne celláról cellára végigmenni vba kóddal (a cellák háttérszínére vagyok kíváncsi, de most nem ez a lényeg)?
Alapból így próbáltam (csak a lényeg)For i=1 to 3
For j=1 to 6
worksheetneve.range("terulet").cells(i,j).vizsgálttulajdonság
Next j
Next iNa most ezzel az a baj, hogy ha a sorokat nézzük, akkor nem úgy megy végig a bejelölt területen, hogy A1,A4,A7, hanem A1,A2,A3, ami nem jó. Van valami egyszerű megoldás, hogy egyszerűen rábírjam arra, hogy csak a "terulet" néven definiált range celláit vizsgálja?
Az a baj, hogy ezt 5x kell eljátszani és mind az 5 tartomány 6 sorból tevődik össze, így a lehető legegyszerűbb megoldást keresem, hogy ne kelljen 5x egy soksoros kóddal külön kigyűjteni és egy tömbbe beleírni a keresett értékeket, hogy utána azzal dolgozzak. Vagy máshogy nem megy?
Bízom benne, hogy érthető a problémám.
-
Fferi50
őstag
Szia!
Ha nem összefüggő a kijelölt terület, akkor az Area tulajdonsággal hivatkozhatsz ezek közül az egyikre.
Tehát a területeken (Areas) kell végigmenned és azon belül a cellákon:Dim terul as Range, cl as Range
For Each terul in worksheetneve.range("terulet").Areas
For each cl in terul.cells
cl.vizsgalttulajdonsag
Next
NextA For Each ciklus előnye, hogy nem kell tudnod, hány darab van az adott objektumból.
Az egyes területeken a VBA sorirányban megy végig (ezt a cím lekérdezésével ellenőrizheted), az első sor után következik a második sor stb.
Természetesen más módon is lehet szervezni ciklust, a fontos, hogy itt tkp. nem egy, hanem 3 területről van szó.Ha A1,A4,A7 sorrendet szeretnél, akkor sorban a három terület első celláit kell venned, majd utána a második cellákat stb.
Üdv.
-
RAiN91
őstag
Sziasztok
VBA-ban nem tudok valamiféle sorrendvezérlést létrehozni?
If Cells(i, 42) = "OK" Then
Cells(i, 25) = "XYZ"
'MAJD EZUTÁN
Range("O" & i).ClearContents
End IfIlyesmire gondolok, a lényeg, hogy csak akkor menjen a 2. sor, ha megvan az első.
Köszönöm.
[ Szerkesztve ]
-
Fferi50
őstag
válasz RAiN91 #35728 üzenetére
Szia!
Nem tudom, hogy mire gondolsz.
A VBA-ban az utasítások végrehajtása abban a sorrendben történik, amelyikben leírtad a makróban.
Feltételekkel szabályozhatod, hogy mikor hajtódjon végre egy sor, pl. a te If then szerkezeted azt írja elő, hogy az utána következő 2 sor csak akkor hajtódjon végre, ha a megjelölt cella tartalma OK. Ha nem ez a tartalma, akkor a két sor kimarad és az End If sor után folytatódik a makró végrehajtása.
Ezen kívül lehet még ciklusokat szervezni, ha valamit többször kell végrehajtani, továbbá vannak ugrási lehetőségek és meghívható másik makró vagy függvény - és ez még korántsem a teljes fegyvertár.Jó lenne, ha pontosabban megfogalmaznád a kérdésed.
Üdv.
-
RAiN91
őstag
válasz Fferi50 #35729 üzenetére
Nem biztos, hogy jól el tudom magyarázni, de azért megpróbálom.
Az a probléma, hogy a törlés parancsom ugyan akkor törlődik ki, mint amikor bekerül az XYZ a cellába, és ez problémát okoz. Én azt hittem, párhuzamosan adja ki ilyenkor a parancsot, de akkor viszont csak annyi a gond, hogy túl gyors a program
Időzítővel kell megoldani, de eddig nem találtam jó időzítőt, mert közben az excelem online frissítése leáll. -
Fferi50
őstag
válasz RAiN91 #35730 üzenetére
Szia!
Nagyjából értem, hogy mit szeretnél. Nem tudom, mennyit és miért kellene várni a törléssel, de az
Application.Ontime metódust és a hozzá kapcsolódó helpeket, megoldásokat nézd meg légy szíves. Szerintem ez lesz neked jó megoldás.
Itt lehet időzíteni makró futásokat, közben pedig minden más Excel makró futhat. Arra viszont vigyázni kell, hogy ezt le kell állítani, mielőtt kilépsz a programból.Üdv.
-
NemszakiTomi
csendes újonc
Sziasztok!
A segítségeteket szeretném kérni.
Kaptam egy Excel munkafüzetet, közel fél megás. Megnyitva több munkalapot is tartalmaz, viszont semmilyen adat nem látszik.
Ha az egyik cellára viszem a kurzort, valószínűleg email cím lehet(ett) a cellában, mert kézre vált az ikon, és felugrik egy kis tooltipp, hogy "mailto:emailcím - egy kattintásra követi". De sem ez, sem más adat nem látszik.
A betűszín/cella háttér volt a legelső dolog, amit megnéztem, de azt feketére állítva sem jelent meg adat.Van valamilyen ötletetek, hogy hogy lehetne visszavarázsolni a nem látszó adatokat?
Köszönöm!
-
Delila_1
Topikgazda
válasz NemszakiTomi #35733 üzenetére
Nézd meg a cellaformátumot is! Van egy formátum – ;;; –, ami láthatatlanná teszi a cella tartalmát.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
MODERÁTOR
sziasztok,
szeretném egy cellába összeszámolni, hogy hány db igen van a B oszlopban, ahol az A oszlop értéke a. itt tehát 2-t kellene kapni eredménynek
[ Szerkesztve ]
Nem vagyok hős, egész nap internetezek.
-
Mela Kehes
addikt
Üdv!
Dolgoztam egy excel táblában és most hogy megnyitnám az alábbi üzenetet kapom:
Excel could not open - példa.xlsx because some content is unreadable. Do you want to open and repair this workbook?
If Excel cannot repair the file, some data may be lost.A táblában ahol eddig hivatkoztam egy másik excel fájlra ott most csak a végeredmény van (egy szám).
Vissza tudom valahogy állítani?"Ha lehet menni akkor menjünk, ha meg tökölni kell akkor meg tököljünk."
-
Pityke78
őstag
Sziasztok!
Azt milyen képlettel tudom megoldani, hogy a cella tartományban azt szeretném megnézni, hogy bizonyos szöveg rész szerepel-e valamelyik cellában.
Az nem érdekes, hogy melyik cellában, csak hogy van-e benne, vagy sem.
Példa:
A1 cella tartalma: alma
A2 cella tartalma: körte
A3 cella tartalma: szőlő
A4 cella tartalma: dinnyeÉn arra lennék kíváncsi, hogy a A1:A4 cellatartományban van-e "alm" szövegrészlet.
Jelen esetben igen, mivel az A1 cellában alma szerepel és abban van alm szövegrészlet.Meg tudom ezt valahogy egyszerűen oldani?
Köszi
[ Szerkesztve ]
-
Fferi50
őstag
válasz Pityke78 #35738 üzenetére
Szia!
=Darabteli(A1:A4;"*alma*")
megmondja, hogy hány cellában fordul elő a szövegben alma részlet. Értelemszerűen 0 az értéke, ha nem fordul elő.
Ezt még megfűszerezheted egy Ha függvénnyel:
=HA(Darabteli(A1:A4;"*alma*")=0;"NINCS";"VAN")A * (csillag) joker karakter utal arra, hogy szövegrészletet keresel. Előtte * az almára végződő, utána * az almával kezdődő karaktersorozatokat keresi.
Üdv.
-
Fferi50
őstag
válasz NemszakiTomi #35739 üzenetére
Szia!
Ne másold az adatot, hanem próbáld a következőt:
Adj hozzá egy új munkalapot.
Ezután az új munkalap A1 cellájába írd be a képletet:
=Régilap!A1
Ha itt megjelent valami (de ha nem akkor is megér egy próbát), húzd a képletet végig pár oszlopon és soron.Elvileg így csak az ott levő értékeket fogod látni, hogy milyen képlet alapján jön létre, illetve milyen a formázása, azt biztosan nem.
Ha ez nem vezet eredményre, akkor még mindig meg lehet próbálni makróval kiolvasni a cella tartalmát és jellemzőit.
Üdv.
-
lappy
őstag
válasz NemszakiTomi #35739 üzenetére
Nincs benne véletlenül Macro mert lehet azzal van eltüntetve
Bámulatos hol tart már a tudomány!
-
Certee
senior tag
Olyan problémába ütköztem, hogy nem tudok etiket cimkét nyomtatni Excel-ből.
Van egy Brother cimkenyomtatóm és ezzel szeretnék excelből egy adott területet kinyomtatni amit megszerkesztek.
Hogyan tudom, hogy mekkora helyen kell dolgoznom, és utána hogyan tudom kinyomtatni?
Tud ebben valaki segíteni?Egy szabad országban, egy szabad ember, azt tesz amit szabad... http://www.biwak.hu
-
butch3r
senior tag
-
Certee
senior tag
A nyomtatási terület kiválasztása dolog csak az A4 papírnál működik.
Ha beállítok egy 54 x 17 -es cimkét, akkor már nincs rajta a lapon.
A pdf-be való mentegetés nem jó, mert ennek az lenne a lényege, hogy gyorsan ki tudjak nyomtatni vele cimkéket.Egy szabad országban, egy szabad ember, azt tesz amit szabad... http://www.biwak.hu
Új hozzászólás Aktív témák
- Milyen autót vegyek?
- MasterDeeJay: Volta a bányából azaz CMP 100-210 kisteszt (Tesla V100 mining)
- Telekom mobilszolgáltatások
- Kertészet, mezőgazdaság topik
- exHWSW - Értünk mindenhez IS
- Facebook és Messenger
- EAFC 24
- Házimozi haladó szinten
- OLED TV topic
- Székesfehérvár és környéke adok-veszek-beszélgetek
- További aktív témák...
- Microsoft licencek a KIVÉTELES ÁRAK - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- World of Warcraft Shadowlands Collectors edition EU EN
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.