- A sógorokhoz érkezik a kompakt Vivo X200 FE
- Magisk
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- Xiaomi 14T - nem baj, hogy nem Pro
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Honor Magic5 Pro - kamerák bűvöletében
- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Mobil flották
-
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
válasz
mr.nagy #16312 üzenetére
A demo 6. sora az átmozgatás előtti értékeket tartalmazza? Mert akkor nem értem.
A 10-es üzletből mind a 9 db-ot átteszed a 19-esbe, ennek eredményeként mindkét üzlet nullás lesz. Később a 14-es üzletből újabb 9 db-ot teszel a 19-esbe. Az már csak hab a tortán, hogy a 14-esben 14 db-ból 8+9=17-et teszel át a 16-osba és 19-esbe.Hogy van ez?
-
Delila_1
veterán
válasz
Delila_1 #16304 üzenetére
Az előbbi makrónak hibája, hogy ha az első üzleteknél negatív értékek vannak, azok úgy maradnak.
Kiegészítettem, az új részt az End Sub fölé kell betenni.For sor = 2 To usor
For oszlop = 33 To 15 Step -1
If Cells(sor, oszlop) > 0 Then
For O1 = 32 To 14 Step -1
If Cells(sor, O1) < 0 Then
Cells(sorFelír, "AK") = Cells(1, oszlop) & " " & sor & ".sor_" & Cells(sor, oszlop) & " db"
Cells(sorFelír, "AL") = Cells(1, O1) & " " & sor & ".sor_" & Cells(sor, O1) & " db"
Cells(sor, O1) = Cells(sor, O1) + Cells(sor, oszlop)
Cells(sor, oszlop) = 0
sorFelír = sorFelír + 1
Exit For
End If
Next
End If
Next -
Delila_1
veterán
válasz
motinka #16302 üzenetére
A lapnév ezzel az összetett képlettel nyerhető ki, de csakis egy már mentett fájlnál, mert a fájlnévből indul ki.
=KÖZÉP(CELLA("filename";$A$1);SZÖVEG.KERES("]";CELLA("filename";$A$1))+1;100)
U.i.: magyar nyelvű Excelben is a "filename" szükséges hozzá, bár a súgó nem ezt mondja.
-
Delila_1
veterán
válasz
mr.nagy #16294 üzenetére
Feltételezem, hogy az első a címsorod, a másodiktól kezdve vannak folyamatosan az adataid.
A lenti makró azt csinálja, amit kértél, plusz az AK oszlopba folyamatosan beírja a címsorban lévő üzlet nevét, ahol a plusz értéket átírta egy másik üzletbe (és ezt lenullázta), valamint azt, hogy mennyi volt ebben az üzletben és ebben a sorban az eredeti érték. Az AL oszlopba azt az üzletet írja, ahova át lett téve a plusz, az eredeti negatív értékkel és sorszámmal együtt.Pl. az Üzlet1-ben volt 5, az Üzlet5-ben -3, mindez a táblázatod 4. sorában, az AK oszlopban
Üzelet1 4.sor_5 db, az AL-ben Üzlet5 4.sor_-3 db lesz.Sub javaslat()
Dim oszlop As Integer, sor As Integer, usor, O1 As Integer, sorFelír
usor = Cells(Rows.Count, "A").End(xlUp).Row
sorFelír = 2
Range("AK:AL") = ""
Range("AK1") = "Honnan–eredeti érték": Range("AL1") = "Hova–eredeti érték"
For sor = 2 To usor
For oszlop = 14 To 32
If Cells(sor, oszlop) > 0 Then
For O1 = oszlop + 1 To 33
If Cells(sor, O1) < 0 Then
Cells(sorFelír, "AK") = Cells(1, oszlop) & " " & sor & ".sor_" & Cells(sor, oszlop) & " db"
Cells(sorFelír, "AL") = Cells(1, O1) & " " & sor & ".sor_" & Cells(sor, O1) & " db"
Cells(sor, O1) = Cells(sor, O1) + Cells(sor, oszlop)
Cells(sor, oszlop) = 0
sorFelír = sorFelír + 1
Exit For
End If
Next
End If
Next
Next
End Sub -
Delila_1
veterán
válasz
nimmy001 #16290 üzenetére
Mkróval is lehet, ahogy Poffsoft ajánlotta a 16292-ben, de erre találták ki a formátumfestő ecsetet.
Kijelölöd a sorokat, rákattintasz az esetre, átmész a másolatra, ott is kijelölöd. Kész vannak a sormagasságok. Ugyanezt elvégzed az oszlopok kijelölésével is, kész az oszlopok szélessége. -
Delila_1
veterán
válasz
Excelbarat #16257 üzenetére
Ezt, hogy az activex vezérlő "menet közben" is változik, nem vettem eddig észre. Köszönöm.
Itt is be lehet állítani a nagy lépést (largechange).
-
Delila_1
veterán
válasz
Excelbarat #16255 üzenetére
Valamiért nem tudom megnyitni, amit feltöltöttél.
Igazad van, activex. Régen készítettem, ameddig nem nyúlt vissza az emlékezetem.
-
Delila_1
veterán
válasz
Excelbarat #16247 üzenetére
Az űrlap vezérlői között is van görgetősáv, én azzal csináltam.
-
Delila_1
veterán
Tettem fel egy fájlt, ami több féle dinamikus grafikont tartalmaz. Megtalálható benne a tól_ig lapon, amit Te tettél fel, de van ennek egy kifinomultabb változata is az interaktív lapon, ahol csúszka segítségével "mozgathatod" az ábrázolt tartományt.
Minden lapra írtam némi magyarázatot.
-
Delila_1
veterán
válasz
Töki bácsi #16207 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
Töki bácsi #16189 üzenetére
Több kép válogatásához feltettem ide egy fájlt. A rar-ban lévő képeket tedd a C meghajtón a Képek mappába a próbához, utána a Munka2 lapon írd át az útvonalakat és fájlneveket a saját képeidhez.
-
Delila_1
veterán
válasz
Sixkiller6 #16137 üzenetére
A radír hasznos dolog.
-
Delila_1
veterán
válasz
Sixkiller6 #16129 üzenetére
2003-asnál magasabb verzióban az & ".xls" helyére ".xlsm"-et írj.
Sub Ment()
Dim nev$
nev$ = Left(ActiveWorkbook.Name, Application.WorksheetFunction.Search(".", ActiveWorkbook.Name) - 1)
nev$ = nev$ & "_" & Sheets(1).Range("A1") & ".xls"
ActiveWorkbook.SaveAs Filename:=nev$
End Sub -
Delila_1
veterán
válasz
Bocimaster #16112 üzenetére
Látogass el ide!
-
Delila_1
veterán
Ebben az esetben a 2. tartományba csak 1 db X-et ír.
Két makróval:Sub X_ek()
Dim sorF%, sorA%, oszlopE%, oszlopU%, i%, sor%, oszlop%
sorF% = 42: sorA% = 71: oszlopE% = 4: oszlopU% = 8
Beiras sorF%, sorA%, oszlopE%, oszlopU%
sorF% = 42: sorA% = 71: oszlopE% = 10: oszlopU% = 12
Beiras sorF%, sorA%, oszlopE%, oszlopU%
End SubSub Beiras(sorF%, sorA%, oszlopE%, oszlopU%)
For i = 1 To 2
sor% = Rnd() * (sorF% - sorA%) + sorA%
oszlop% = Rnd() * (oszlopU% - oszlopE%) + oszlopE%
Cells(sor%, oszlop%) = "X"
Next
End Sub -
Delila_1
veterán
válasz
baderoli #16101 üzenetére
Csak a Dim kezdetű sort nem kell újra beírni.
Meg lehetne úgy is oldani, hogy az első makróban van az értékadás, és onnan hívjuk meg a másodikat, az értékek átadásával, akkor nem kellene ismételni a for-next ciklust. Ez egy olyan egyszerű makró, hogy nem érdemes külön bajlódni vele.
-
Delila_1
veterán
válasz
baderoli #16099 üzenetére
Az értékadásnál a sorF% a területed felső sora, a sorA% az alsó sor, az oszlopE% a terület első-, az oszlopU% az utolsó oszlop száma. Az én értékadásomnál a terület C3:J10.
Sub X_ek()
Dim sorF%, sorA%, oszlopE%, oszlopU%, i%, sor%, oszlop%
sorF% = 3: sorA% = 10: oszlopE% = 3: oszlopU% = 10
For i = 1 To 2
sor% = Rnd() * (sorF% - sorA%) + sorA%
oszlop% = Rnd() * (oszlopU% - oszlopE%) + oszlopE%
Cells(sor%, oszlop%) = "X"
Next
End Sub -
Delila_1
veterán
válasz
BenJoe80 #16093 üzenetére
Nem értelek. Kettőnknek is megköszönted a segítséget, amit végül nem alkalmaztál, hanem másképp, sok munkával oldottad meg a feladatot.
Két kérdés merül fel.
1. Ha segítséget kérsz és kapsz, miért nem alkalmazod?
2. Egyáltalán miért kérsz segítséget, ha anélkül oldod meg? -
Delila_1
veterán
válasz
BenJoe80 #16081 üzenetére
A makró az A oszlopod összevont celláit szedi kétfelé. Az Alt+Enterrel egymás alá bevitt két adatot az összevonás első, és második sorába írja.
Sub Szetvalaszt()
Dim sor As Integer, usor As Integer, WF As WorksheetFunction
Dim kezd$, veg$
Set WF = Application.WorksheetFunction
usor = Cells(Rows.Count, "A").End(xlUp).Row
For sor = usor To 2 Step -2
If WF.Search(Chr(10), Cells(sor, "A")) Then
kezd$ = Left(Cells(sor, "A"), WF.Search(Chr(10), Cells(sor, "A")) - 1)
veg$ = Right(Cells(sor, "A"), Len(Cells(sor, "A")) - WF.Search(Chr(10), Cells(sor, "A")))
Range(Cells(sor, "A"), Cells(sor + 1, "A")).UnMerge
Cells(sor, "A") = kezd$: Cells(sor + 1, "A") = veg$
End If
Next
End Sub -
Delila_1
veterán
válasz
-Mike- #15986 üzenetére
Az 5 számot az N1:R1 tartományba írva a képlet Q2-től lefelé
=DARABTELI(L2:P2;$N$1)+DARABTELI(L2:P2;$O$1)+DARABTELI(L2:P2;$P$1)+DARABTELI(L2:P2;$Q$1)+DARABTELI(L2:P2;$R$1)
Szerk.: Feltételes formázást is adhatsz az L2:Psok tartományra. A képlet
=VAGY(L2=$N$1;L2=$O$1;L2=$P$1;L2=$Q$1;L2=$R$1)
-
Delila_1
veterán
válasz
csferke #15952 üzenetére
Sub Datum_L_be()
Dim sor As Integer
sor = Application.WorksheetFunction.Match([A1], Sheets(2).Columns(2), 0)
Sheets(2).Cells(sor, "L") = Date
End SubSub Novel_F_et()
Dim sor As Integer, CV As Object
For Each CV In [B27:B38]
If CV <> "" And IsNumeric(CV) Then
On Error GoTo Kov
sor = Application.WorksheetFunction.Match(CV, Sheets(2).Columns(1), 0)
Sheets(2).Cells(sor, "F") = Sheets(2).Cells(sor, "F") + Cells(CV.Row, "F")
End If
Kov:
Next
End Sub -
Delila_1
veterán
Private Sub Workbook_Open()
Sheets("Munka1").Range("A1") = Sheets("Munka1").Range("A1") + 1
workbooks("C:\Főmappa\Almappa\Másik_Fájl_Neve.xls").sheets("Munka1").range("A1")= _
workbooks("C:\Főmappa\Almappa\Másik_Fájl_Neve.xls").sheets("Munka1").range("A1")+1
End SubPróba nélkül!
-
Delila_1
veterán
válasz
repvez #15927 üzenetére
Ellenőrizd, hogy a képletben és az érvényesítésben szereplő értékek azonosak-e. Lehet, hogy ahonnan az érvényesítésbe beveszed, a végén van egy szóköz, vagy valami más, nem látható karakter. Ez elég sűrűn előforduló hiba.
Igen, lehet 2 helyre vinni az eredményt. Vagy beírod a másik helyre is az indexes függvényt, vagy csak egy hivatkozást, ami az eredeti függvény helyére mutat. Ha az eredeti az I4-ben van, a másik helyre elegendő az
=I4 hivatkozás. -
Delila_1
veterán
válasz
repvez #15906 üzenetére
Van egy nagyon egyszerű megoldás, a Szóköz, vagy másképpen Metszet operátort használd. A szerkesztőlécen láthatod a D13 cella képletét.
Az L1, L2 ... L9 cellákat nem véletlenül alakítottam át L_1, L2 ... L_9re, mert csak ezeket az értékeket úgy kezeli, mintha a névkezelőben nevet adtál volna nekik, ott pedig csak így fogadja el a számokat tartalmazó értékeket. A szóközök helyett is alsó kötjelet tettem a Nagyon... kezdetű nevekbe.
A képletben a két név közé szóközt kell tenned, ezért hívják szóköz operátornak.
-
Delila_1
veterán
válasz
WildBoarTeam #15881 üzenetére
OK.
-
Delila_1
veterán
válasz
WildBoarTeam #15878 üzenetére
A tábla szerkezetének ismerete nélkül nem érdemes nekilátni, vaktában lövöldözés lenne.
-
Delila_1
veterán
válasz
poffsoft #15856 üzenetére
Nem tudom, miért tartasz a kimutatástól, hiszen sokkal bonyolultabb dolgokat oldasz meg. Nézz szét a YouTube-on, ott az 'Excel kimutatás'-ra rákeresel, és jobbnál jobb videókat kapsz.
Például ezt. Van folytatása. -
Delila_1
veterán
válasz
dellfanboy #15834 üzenetére
Érd el, hogy minden lapon azonos cellában legyen az összegzendő érték. Találd meg, melyik cella szerepel a legtöbb lapon. Ha ez pl. a B30, akkor a többi lap B30 cellájába hozd be ezt az értéket. Ahol B3-ban van, ott a B30 legyen =B3. Lehet, hogy jobb egy olyan cellába vinni, amit később az adatmennyiség növekedése miatt biztosan nem írsz majd felül.
Mikor ez megvan (babrás munka, de 1× kell végrehajtani), az összegző lapon a képlet
=SZUM('Első lap neve:Utolsó lap neve'!B3)Figyelj az aposztrófokra!
-
Delila_1
veterán
válasz
Vladek83 #15830 üzenetére
Érvényesítésben add meg a diagramok nevét, innen választhatod ki, melyiket szeretnéd látni. Nálam ez az A14 cellában van.
Sub diagram()
Dim nev$, d As Integer, dnev
nev$ = Range("A14")
For d = 1 To ActiveSheet.ChartObjects.Count
dnev = "Diagram " & d
If dnev = nev$ Then
ActiveSheet.ChartObjects(dnev).Visible = True
Else
ActiveSheet.ChartObjects(dnev).Visible = False
End If
Next
End SubMegteheted, hogy egy eseményvezérlésbe teszed be a makrót, akkor a választás után nem kell külön indítani, azonnal a kedvenc diagramod lesz látható. Ezt a makrót a laphoz kell rendelned.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$14" Then
Dim nev$, d As Integer, dnev
nev$ = Range("A14")
For d = 1 To ActiveSheet.ChartObjects.Count
dnev = "Diagram " & d
If dnev = nev$ Then
ActiveSheet.ChartObjects(dnev).Visible = True
Else
ActiveSheet.ChartObjects(dnev).Visible = False
End If
Next
End If
End SubMindkét makrónál figyelj arra, hogy az Excel milyen nevet adott a diagramjaidnak. Nálam 'Diagram 1', 'Diagram 2', stb. Érdemes megtartani (ebben az esetben) ezeket az automatikusan generált neveket, hogy a for-next ciklusban egyszerűen utalhass rájuk.
-
Delila_1
veterán
válasz
pirit28 #15823 üzenetére
Nem az, amit kértél, de hasonló. Szálkeresztben mutatja a cellát, amire rákattintottál. A laphoz kell rendelned. Nem én írtam.
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 Sub -
Delila_1
veterán
válasz
Vladek83 #15816 üzenetére
Az A1-re, vagy A16-ra duplán klikkelve tűnnek el, vagy jelennek meg a címhez tartozó sorok.
További Case utasításokkal bővítheted.Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Address
Case "$A$1"
If Rows("2:15").Hidden = True Then
Rows("2:15").Hidden = False
Else
Rows("2:15").Hidden = True
End If
Case "$A$16"
If Rows("17:25").Hidden = True Then
Rows("17:25").Hidden = False
Else
Rows("17:25").Hidden = True
End If
End Select
End Sub -
Delila_1
veterán
válasz
Vladek83 #15813 üzenetére
Arra gondolsz, hogy ha egy cellába beírod, hogy "zár", akkor az első szinteket mutatja, a "nyit" beírására a másodikakat is? Erre írtam egy makrót, ami a H1 cella tartalmának a változására végrehajtja a fentieket. A makrót a laphoz kell rendelned.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
If Target = "nyit" Then
ActiveSheet.Outline.ShowLevels RowLevels:=2
ElseIf Target = "zár" Then
ActiveSheet.Outline.ShowLevels RowLevels:=1
End If
End If
End SubA H1 cellában alkalmazhatsz érvényesítést.
-
Delila_1
veterán
válasz
csferke #15812 üzenetére
Szia!
A Lap1 lapon vannak az adataid az A:D tartományban.
1. Az E oszlopban fűzöd össze a várost és a nevet.
2. Névadással meghatározod az E oszlop tartományát. Legyen a név mondjuk NevVaros. A hivatkozásba ezt írd: =OFSZET(Lap1!$E$2;0;0;DARAB2(Lap1!$E:$E)-1;1), ezzel eléred, hogy a névvel ellátott tartományod rugalmasan követi a bevitt adatmennyiséget.
3. A Lap2-n ne az A1-be, hanem pl. a G1-be tedd az érvényesítést. Lista, a forrás =NEvVaros
4. Az A oszlopba szövegesen felviszed, milyen adatokat akarsz látni (név, ir.szám, város, cím).
5. B1 képlete: =INDEX(Lap1!A:E;HOL.VAN($G$1;Lap1!E:E;0);SOR()), ezt lemásolod a B4 celláig.Ha nem az első sorban kezded az adatok lekérdezését a Lap2 lapon, akkor a SOR() helyett 1-et, 2-t, stb. írj.
-
Delila_1
veterán
Cella méretéhez nem tudom igazítani a képeket, pedig állítólag lehet.
A lenti makró az A oszlop celláihoz rendel megjegyzéseket, és ezekbe teszi be a képet.Az útvonalat írd át. A képeket ehhez a módszerhez át kell nevezned Kép1, Kép2, stb. névre. Érdemes új mappát létrehozni, abba bemásolni az eredeti képeket, és ott adni nekik új nevet. A Total Commander csoportos átnevezés parancsával ez könnyen megoldható.
Sub KepekMegjegyzesbe()
Dim sor%, utvonal As String
utvonal = "E:\Képek\" 'Ezt írd át
sor% = 1
Do While Cells(sor%, 1) > ""
With Cells(sor%, 1)
.Select
.AddComment
ActiveCell.Comment.Visible = True
.Comment.Text Text:=""
.Comment.Visible = True
End With
Selection.Comment.Shape.Select True
Selection.ShapeRange.Fill.UserPicture utvonal & "Kép" & sor% & ".jpg"
sor% = sor% + 1
Loop
End Sub
Új hozzászólás Aktív témák
Hirdetés
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Antivírus szoftverek, VPN
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Assassin's Creed Shadows Collector's Edition PC
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Xiaomi Redmi Note 14 Pro 256GB Kártyafüggetlen 1Év Garanciával
- Bomba ár! Lenovo ThinkPad Yoga 260 - i5-G6 I 8GB I 256SSD I 12,5" Touch I W10 I Cam I Gari!
- DELL Universal Dock D6000 docking station (452-BCYH) (DisplayLink)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone i9 14900KF 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest