Hirdetés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- One mobilszolgáltatások
- Telekom mobilszolgáltatások
- Svájcban bukkant fel egy Berlinbe készülő HMD
- Milyen okostelefont vegyek?
- Android dual SIM okostelefonok
- Okosóra és okoskiegészítő topik
- Xiaomi Redmi Note 5 Global
-
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
atillaahun #16899 üzenetére
A makró végére írd be, hogy a Munka2 A oszlopában ezeket a karaktereket cserélje üres stringre.
-
atillaahun
veterán
válasz
Delila_1 #16897 üzenetére
Egy 100-as mintányi levélen futtattam most le, és lett belőle EZ, kb. ötször annyi címmel - cellával, ami nagyjából stimmel is.
Leginkább csak a kacsacsőr jelek maradtak, meg itt-ott pár szó, pontosvessző, meg néhány egyéb hülye karakter.Valami szöveg.keres meg közép függvényekben gondolkodom.
Az már megvan, hogy a végét ott kell levágni ahol a .hu van, csak még az elejét kéne valahogy megtalálni, mert az ugye változó. -
Delila_1
veterán
válasz
atillaahun #16896 üzenetére
Milyen szemét karakterek vannak benne?
-
Delila_1
veterán
válasz
atillaahun #16891 üzenetére
Ímé a makró hozzá:
Sub email()
Dim ter As Range, CV, WS As Worksheet, sor As Integer
Cells(1).Select
Selection.CurrentRegion.Select
Set ter = Selection
Set WS = Sheets("Munka2")
sor = 1
For Each CV In ter
If InStr(CV, "@") Then
WS.Cells(sor, 1) = CV
sor = sor + 1
End If
Next
End SubA Munka1 lapon oszlopokba szétszedett adatokból a Munka2 lap A oszlopába gyűjti ki a címeket (@-ot) tartalmazó cellák tartalmát.
-
ha már így belejöttetek ...
még egy uccsó kérdés
adott:
A1=1603+1603+640+640+640+388+388
(nem képlet hanem szöveg!)s pl. ilyen kellene belőle:
B1=2db - 1603
C1=3db - 640
D1=2db - 388csak számokat tartalmaz, a + mindig adott, a számok mennyisége változó
-
Delila_1
veterán
válasz
atillaahun #16891 üzenetére
Segít, ha feltételes formázást adsz rá?
A formázás képlete =SZÖVEG.TALÁL("@";A1)>0Esetleg egy makró, ami végigfut a területen, és egy másik helyre egymás alá beteszi a @-ot tartalmazó cellák tartalmát...
-
atillaahun
veterán
-
köszi mindkettőtöknek
működiks olyat lehet hogy ez a parancssor ha nem talál / -t akkor csak simán beírja az értéket az adott cellába
-
válasz
atillaahun #16882 üzenetére
ja s most látom hogy ez egyik fülből a másikba nem tud tagolni?
mert fülön belül megcsinálja, de ha a végeredményt másik fülre akarom kiíratni hibát ír -
válasz
atillaahun #16882 üzenetére
ennyi idő alatt nem ér megmondanide az ilyennek mi a parancssora?
mert automatikus kellene ami csak arra vár legyen a cellákba adat legyen (az nem számít hogyha nincs adat hibát ír) -
Sziasztok
azt hogy lehet megoldani hogy az:
A1=0x00/1y11s ez így jelenjen meg:
B1=0x00
C1=1y11a karakterek alfanumerikusak és különböző hosszúságúak
szal csak az a biztos hogy van benne /előre is köszi
-
atillaahun
veterán
válasz
Delila_1 #16879 üzenetére
Igaz!
Mármint ezzel már tegnap is próbálkoztam, csak sortörések, meg egyéb hülye karakterek voltak a szövegben, és folyton beleakadt a tagolás. De most rátaláltam a csodálatos tisztít függvényre, és így máris jól viselkedik a szöveg. -
Delila_1
veterán
válasz
atillaahun #16878 üzenetére
Nem tudom, honnan veszed a szöveget, de ha 1 oszlopba jut 1-1 hosszú, címekkel tarkított szövegrész, akkor a szövegből oszlopok funkcióval szét tudod szedni, szóköz tagolóval.
Gondolom, az előbbi képlettel a @ jelet számlálod.Ha szövegrész előfordulását akarod számlálni egy szövegben, akkor a
=SZORZATÖSSZEG(--(KÖZÉP(B2;SOR(A1:INDIREKT("A"&HOSSZ(B2)));1)="a"))
úgy módosul, hogy a képleten belül lévő egyenlőségjel előtti 1-et átírod annyira, ahány karakter hosszú a keresett szövegrész.
=SZORZATÖSSZEG(--(KÖZÉP(B2;SOR(A1:INDIREKT("A"&HOSSZ(B2)));4)="alma"))
-
atillaahun
veterán
válasz
Delila_1 #16877 üzenetére
Köszi.
Ebbe inkább bele se gondolok hogy működik.
Tegnap óta próbálom egyébként egy xls-be exportált visszapattanó email halomból (levelek tartalmából - body) kinyerni a konkrét címeket, hogy aztán kitörölhessem őket a küldő adatbázisból, de sehogy sem jövök rá egy hatékony megoldásra.
Majd mindegyik levélnek más a szövege, tehát máshova esnek bennük a címek, ráadásul 2-3-4-5-... db cím van is minden levélben.
Tudsz esetleg erre egy kézenfekvő megoldást, ami valahogy a hivatkozásokat tudja másolni, vagy jobb ha elkezdem őket egyesével, kézzel kiszedegetni?
-
Delila_1
veterán
válasz
atillaahun #16876 üzenetére
=SZORZATÖSSZEG(--(KÖZÉP(B2;SOR(A1:INDIREKT("A"&HOSSZ(B2)));1)="a"))
Ez a B2 cella szövegében számolja meg az a betűket.
-
atillaahun
veterán
Olyan függvény van, ami megszámolja, hogy bizonyos karakter/kifejezés hányszor szerepel egy cellában?
Elég alapvető dolognak tűnik, én mégse találtam.
A darab-okkal csak cellatartományban lehet számolni? -
Delila_1
veterán
válasz
m.zmrzlina #16874 üzenetére
Nekem csak 2007-es verzióm van, de azért küldd el, ha gondolod, megnézem.
-
Delila_1
veterán
válasz
m.zmrzlina #16872 üzenetére
Be van kapcsolva az Analysis ToolPak - VBA nevű bővítményed?
-
m.zmrzlina
senior tag
válasz
Delila_1 #16871 üzenetére
Range("J3:J15000") = "=COUNTIFS(A:A,G3,B:B,H3,C:C,I3)"
Ennél a sornál hal most meg nekem a makró (ld #16868. hszt)
Egyszerűen nem írja ki munkalapra a makró a megadott cellába a képletet. Ha kitörlöm az "="- t a fv neve elől akkor kiírja munkalapra (szövegként természetesen, és persze nem számol)
Maga a fv jó mert ha kézzel
odabiggyesztek elé egy "="-t akkor jó eredményt ad.
A baj az hogy makróval nem tudom kiírni a fv-t a munkalapra.Illeteve nekem úgy is jó lenne ha a makró számolná ki az eredményt és már csak azt írná ki munkalapra. (ez volt az eredeti koncepció #16867 hsz)
-
Delila_1
veterán
válasz
m.zmrzlina #16870 üzenetére
Sub mm()
Range("J3:J15000") = "=COUNTIFS(A:A,G3,B:B,H3,C:C,I3)"
Columns("J:J").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub -
m.zmrzlina
senior tag
válasz
Delila_1 #16869 üzenetére
Szia, köszi a választ!
Azért ragaszkodom a makrós megoldáshoz mert nem én fogom használni a munkalapot ezért szeretnék mindet amit lehet a "gombnyomásig" leegyszerűsíteni. Ha nekem kellene akkor a DARABHATÖBB()-es megoldás is jó lenne.
Az a koncepció, hogy a felh. egy üres munkafüzetbe beimportálja a szükséges adatokat,elmenti, bezárja. Aztán megnyitja a makrós munkafüzetet elindítja a makrót (betallózza az előbb mentett adatbázisát) és a makró kikeresi neki a szükséges adatokat.
A szerkezet amit a képen látsz az már a makró elejének a munkája, egyszerűbb volna nem a felhasználóra bízni a képletírást.
-
Delila_1
veterán
válasz
m.zmrzlina #16868 üzenetére
Makró nélkül, 2 segédoszloppal.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #16867 üzenetére
Időközben próbáltam ezt a változatot is:
Range("I3").Select
Do While ActiveCell.Value = -1
strKeplet = "=DARABHATÖBB(A:A;G" & ActiveCell.Row & ";B:B;H" & ActiveCell.Row & ")"
ActiveCell.Offset(0, 1).Value = strKeplet
ActiveCell.Offset(1, 0).Select
LoopEbben az esetben a:
ActiveCell.Offset(0, 1).Value = strKeplet
sor ad Application-defined or object-defined error-t. -
m.zmrzlina
senior tag
Van egy ilyen munkalapom: (A:C oszlopok kb 15000 sort tartalmaznak)
A J oszlop képlete megszámolja, hogy G:I oszlopok -1-re végződő számhármasai hányszor szerepelnek A:C oszlopokban. Ugyanezt szeretném megcsinálni makróval, valahogy így:
Range("I3").Select
Do While ActiveCell.Value = -1
ActiveCell.Offset(0, 1).Value = Application.WorksheetFunction.SumIfs _
(Range("A:A"), ActiveCell.Offset(0, -2), Range("B:B"), ActiveCell.Offset(0, -1), ActiveCell.Value, -1)
ActiveCell.Offset(1, 0).Select
LoopType mismatch hibát kapok. Mit rontok el?
(Tudom innen ki lehetne hagyni a SUMIFS() utolsó két argumentumát de ez most részletkérdés)
-
Excelbarat
tag
válasz
artiny #16865 üzenetére
Hi!
az első legnagyobb megtalálására a MAX függvény. Ha a 2., 3., 4., .... legnagyobbat akarod megkapni akkor használd a NAGY függvényt =NAGY(A1:A10;2) pl ez a második legnagyobbat adja vissza az A1:A10 tömbben. Ha abszolút érték szerint kell akkor felveszel egy új oszlopot amiben az első cellában =ABS(A1) és lemásolod majd a függvényben erre az oszlopra hivatkozol. Remélem érthető ahogy írtam -
artiny
őstag
válasz
Delila_1 #16864 üzenetére
nekem valahogy nem olvasta be rendessen....voltak jol beolvasott szamok es voltak rosszak randonban...
azota kicsereltem a . ,-re es most jo
most egy olyan függvényt keresek ami megtalalja abszolut ertekben a 2 legnagyobb erteket
(pl. -9 , 8 ,-0,5, 4 ,-4 >>> egyik a -9 a masodik pedig a 8 lessz)
-
Delila_1
veterán
válasz
Bishop1 #16858 üzenetére
Figyelmesebben átolvasva azt szeretnéd, ha az új, dátum nevű lapokon a"t "lap címsora (A1:D1 tartomány) jelenne meg a második sorban, az A1 cellában pedig a dátum. Ha jól értem, nincs szükség az autoszűrő ki-bekapcsolására, csak a felső sort kell másolni.
Javaslom, hogy a bővítménykezelőben kapcsold be az Analysis ToolPak és az Analysis ToolPak -VBA bővítményeket, mert valószínű, hogy ezeknek a hiánya miatt futott hibára az előző verzió. Ezekkel kapsz egy halom hasznos új függvényt.
Sub Gomb80_Kattintás()
Dim lap As Integer, szam, ujnev
Sheets(1).Select
lap = Worksheets.Count
If Left(Sheets(lap).Name, 10) = CDate(Date) And Len(Sheets(lap).Name) > 11 Then
szam = Right(Sheets(lap).Name, Len(Sheets(lap).Name) - 12)
ujnev = szam + 1
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_" & ujnev
Else
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_1"
End If
Sheets("t").Range("A1:D1").Copy Sheets(lap + 1).Range("A2")
Sheets(lap + 1).Select
Range("A1") = Date
Columns("A:A").ColumnWidth = 24
Sheets("napi").Select
End Sub -
Delila_1
veterán
válasz
artiny #16860 üzenetére
Úgy gondoltam, át tudod alakítani azt, amit írtam. Átírtam, hogy ne az első, hanem a t nevű lapról másolja az adatokat. Az A1:D66 terület fix? Ha nem, a
Range("A1:D66").Copy Sheets(lap + 1).Range("A1")
helyett ezt írd:
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy Sheets(lap+1).Range("A1")És akkor az átírt makró:
Sub Gomb80_Kattintás()
Dim lap As Integer, szam, ujnev
Sheets(1).Select
lap = Worksheets.Count
If Left(Sheets(lap).Name, 10) = CDate(Date) And Len(Sheets(lap).Name) > 11 Then
szam = Right(Sheets(lap).Name, Len(Sheets(lap).Name) - 12)
ujnev = szam + 1
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_" & ujnev
Else
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_1"
End If
Sheets("t").Select
Range("A1:D66").Copy Sheets(lap + 1).Range("A1")
Sheets(lap + 1).Select
Selection.AutoFilter
Columns("A:A").ColumnWidth = 24
Sheets("napi").Select
End Sub -
artiny
őstag
MS. EXCEL.2007 - Miért nem importalja be rendesen az EXCEL txt fajbol az adatokat?
https://www.dropbox.com/s/5y7mnk1n7xwko4k/data2042.txt -
Bishop1
tag
válasz
Bishop1 #16858 üzenetére
Erre jutottam végül kis segítséggel, de ez nem számlálja az oldalakat, vagyis ha aznap még egy munkalapot nyitnék akkor hibaüzenetet ad az azonos munkalap nevek miatt. Ezt továbbgondolva, mi a módja hogy ha ilyenkor nyitáskor azonos munkalap nevet talál felülírja a frissebbel?
Sub Gomb80_Kattintás()
'
' Gomb80_Kattintás Makró
'
'
Sheets("t").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$D$66").AutoFilter Field:=3, Criteria1:="<>"
Selection.Copy
Sheets.Add(After:=Worksheets(Sheets.Count)).Name = Date
Columns("A:A").ColumnWidth = 24
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "2/23/2013"
Sheets("t").Select
Selection.AutoFilter
Sheets("napi").Select
Range("O8").Select
End Sub -
Bishop1
tag
válasz
Delila_1 #16856 üzenetére
Nem igazán akar működni a makró, az új oldalt megcsinálja, a neve a dátum, eddig stimmel.
Viszont a t nevű munkalapról az autószűrővel szűrt adatok nem kerülnek át az új munkalapra.
Megvallom, cseppet sem értek a makrókhoz, makrórögzítővel raktam össze a fenti programot (egyébként tökéletesen működik csak annyi kellene hogy dátum legyen az új munkalap neve ami nem frissül)
Amit csináltál megcsinálja az új munkalapot, névként megvan a dátum aztán hibát ad a következő üzenettel:
Run-time error 1004 és debug módban a következő sort jelzi hibásnak: Selection.CurrentRegion.Select (Ln17 , Col1).
Amit csináltam az egyébként leszűri a t munkalapon lévő táblázatból az üres sorokat, nyit egy új munkalapot, beszúrja, fölé betesz egy dátumot, vissza t-re, autószűrő kikapcsol, vissza napi-ra (ahol a gomb van ami az egészet indítja) és üríti a vágólapot.
Jól sejtem hogy a tiédet még valahogy össze kell kombinálnom az enyémmel? -
atillaahun
veterán
Arra is tudtok valami okosságot, hogy a szövegből oszlopok-nál sortörés szerint lehessen tagolni?
Mert ha a jelölőnél az egyébhez próbálom beírni az enter-t, vagy alt+enter-t, akkor ugye továbblép.Szimpla szavak szerint szünetekkel meg nem akarom tagolni, mert ahhoz túl sok a tartalom a cellákba, elég lenne soronként. Outlook-ból exportált levelekről van egyébként szó .mdb formátumban.
-
Delila_1
veterán
válasz
Bishop1 #16852 üzenetére
Második kérdés. A Gyűjtő nevű lap C:D oszlopába gyűjti ki a 20-szal kezdődő nevű napok C1:D1 cellájának az adatait.
Sub C1D1()
Dim usor As Integer, lap As Integer
For lap = 1 To Worksheets.Count
If Left(Sheets(lap).Name, 2) = "20" Then
usor = Sheets("Gyűjtő").Cells(Rows.Count, "C").End(xlUp).Row + 1
Sheets(lap).Range("C1:D1").Copy Sheets("Gyűjtő").Range("C" & usor)
End If
Next
End Sub -
Delila_1
veterán
válasz
Bishop1 #16852 üzenetére
Az első kérdésre a makró:
Sub Gomb80_Kattintás()
Dim lap As Integer, szam, ujnev
Sheets(1).Select
lap = Worksheets.Count
If Left(Sheets(lap).Name, 10) = CDate(Date) And Len(Sheets(lap).Name) > 11 Then
szam = Right(Sheets(lap).Name, Len(Sheets(lap).Name) - 12)
ujnev = szam + 1
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_" & ujnev
Else
Sheets.Add After:=Sheets(lap)
ActiveSheet.Name = Date & "_1"
End If
Sheets(1).Select
Range("A1").Select
Selection.CurrentRegion.Select
lap = Worksheets.Count
Selection.Copy Sheets(lap).Range("A1")
Sheets(lap).Select
Selection.AutoFilter
Columns("A:A").ColumnWidth = 24
End Sub -
Bishop1
tag
válasz
Delila_1 #16830 üzenetére
Köszönöm, közben megoldódott.
Érdekes hogy egy másik gépen szintén nem sikerült vízszintes léptető nyilat húzni, egy harmadikon meg igen...
Közben új kérdések merültek fel.
Hogy tudnám a következő makrót úgy módosítani hogy a megnyitott új munkalap neve az aktuális dátum legyen? Sokat bonyolítana hogy ha többször nyit új munkalapot egy nap akkor egy számlálóval a végére beszúrjon egy számot?Sub Gomb80_Kattintás()
'
' Gomb80_Kattintás Makró
'
'
Sheets("t").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$D$66").AutoFilter Field:=4, Criteria1:="<>"
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Columns("A:A").ColumnWidth = 24
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=TODAY()"
Sheets("t").Select
Selection.AutoFilter
Sheets("napi").Select
End SubIlletve a másik kérdésem hogy meg lehet megoldani hogy minden 20-al kezdődő nevű munkalap adott két celláját (pl c1 és d1) egy munkalapon visszakapjam egymás alá listázva?
-
Excelbarat
tag
Hi mindenkinek, ötleteket, más fajta megoldást várok:
Feladat: excellel egy függvényt betanítani adatok alapján és kiszámolja, hogy egy adott eredményt milyen x értéknél vesz fel. Amit alkalmaztam, hogy egy diagrammot hozzáadtam + polinom trendvonalat és annak a függvényét használtam + célértékkeresést, de sajnos kevés adatnál eléggé eltorzul az eredmény...
itt egy kép is:
Egyéb ötletek? -
atillaahun
veterán
válasz
Delila_1 #16846 üzenetére
Jéé ... nagyon menő dolog ez a darabteli.
Azt hittem ezt csak úgy lehet használni, ahogy múltkor mutattad. Mármint akkor ugye még csak azt számoltam, hogy az adott helyen hanyadszorra szerepel az adott cella az oszlopban.
Köszi.Egyébként megcsináltam én már ezt régen egyszer FKERES-el, csak már akkor is olyan bonyolult volt, hogy azóta elfelejtettem.
(#16845) Excelbarat
Természetesen köszönöm a te megoldásod is, valószínűleg előbb üzemeltem volna be, mint a saját régi fkeres-es varázslatomat. -
Delila_1
veterán
válasz
Excelbarat #16848 üzenetére
Szoktam én is jobb kézzel bal fület vakarni.
-
Delila_1
veterán
válasz
atillaahun #16840 üzenetére
A darabteli függvény minden adatod mellé odaírja, hány db van belőle a kérdéses oszlopban. [=darabteli(A:A;A1)].
Erre az oszlopra teszel egy autoszűrőt, és kiszűröd az 1-nél nagyobbakat.Kijelölöd az összes látható sort, kitörlöd.
-
Excelbarat
tag
válasz
atillaahun #16840 üzenetére
Hi! Írtam egy makrót:
Sub torol()
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row, "A")), Cells(i, "A")) > 1 Then
a = Cells(i, "A").Value
For j = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Cells(j, "A").Value = a Then
Cells(j, "A").EntireRow.Delete
End If
Next j
End If
Next i
End Sub
Kihangsúlyozom hogy ez minden olyan SORT töröl amiben az A oszlopban van azonos és nem hagy egyet sem. (ergo aminél talál legalább kettőt abból egyet sem hagy!)
használata:
lapfülre jobb gomb - kód megjelenítése oda bemásolod és nyomsz egy F5-t (vagy felül a zöld kis play nyilacskára katt). és ha minden jól ment akkor csak egyedi értékek maradtak.
Azért mielőtt megcsinálod csinálj egy másolatot a fájlból mert a makrókat nem lehet visszavonni! (amit lefuttatsz és változtat(töröl) azt már nem tudod előhozni. (persze úgy igen h nem mented el a végeredményt, bezárod és újra megnyitod) -
Delila_1
veterán
-
gurabli
őstag
Sziasztok!
Segítségeteket kérném, a következőt kellene valahogy automatizálva megoldani.
Adott egy Excel fájl, ami egy táblázat, ami a kitöltés után ki lesz nyomtatva. Van egy másik xls fájl, amiből az adatok eddig manuálisan, másol/beilleszt-el lettek átrakva az első táblázatba. Ebben a második fájlban, ahol az adatok vannak, kb 200 sor van, soronként három adatot (cellát) kellene átmásolni az első fájl adott cellájába. Ezt követően az első fájlt ki kellene nyomtatni (lementeni nem is szükséges), majd a második sor három adatait átmásolni ugyanabba a táblázatba, azt is kinyomtatni, majd a harmadik, és így végig.
Remélem, hogy érthető, hogy mit kellene megoldani. Tudnátok ebben segíteni, ez megoldható valahogy automatizálva, hogy ne kelljen minden cellát külön átmásolni, kinyomtatni manuálisa?
Köszönet előre is!
-
válasz
Excelbarat #16841 üzenetére
Wow! Maxirespect, tökéletes lett, nagyon köszönöm!
-
Excelbarat
tag
Hi ez a kis makró talán segíthet
A munkalap fülére jobb gomb kód megjelenítése és oda beírod.Sub hasonlit()
Dim sor1
Dim sor2
For i = 1 To ActiveSheet.UsedRange.Rows.Count
talalt = False
For j = 1 To ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If Left(Cells(i, 1), 4) = Left(Cells(j, "B"), 4) Then
sor1 = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row + 1
Cells(i, 1).Copy Destination:=Cells(sor1, "C")
talalt = True
End If
Next j
If talalt = False Then
sor2 = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row
Cells(sor2, "C") = Cells(sor2, "C") & " " & Cells(i, 1)
End If
Next i
End SubEhhez annyi segítséget kell nyújtanod hogy a "B" oszlop soraiba beírod hogy mik legyenek az új sor szavai. Tehát felsorolsz minden olyan szót ami új sorral kezdődjön (tehát ne fűzze az előzőhöz). (legalább az első 4 karaktert! és fontos a kis és NAGY betű)
Te esetedben így néz ki:
B1: Path
B2: Owner
B3: Access
B4: BUILT
B5: NT AUTHA "C" oszlopban pedig látni fogod az eredményt ha megfelel törlöd az A és B oszlopot utána
Még egyszer megjegyzem fontos, hogy a nagybetűt nagy betűvel a kis betűt kis betűvel! -
atillaahun
veterán
A múltkori darabteli-vel duplázódás számolás kapcsán szeretnék még egy kis segítséget kérni.
Hogyan tudnám hatékonyan kitörölni a duplán szereplő cellákat úgy, hogy egyúttal az eredetijük is törlésre kerüljön? Tehát azokból a cellákból amikből kettő van, végül egy se maradjon. -
hallgat
csendes tag
válasz
m.zmrzlina #16818 üzenetére
Mármint mit?
A cellát kézzel vettem fel a munkalap egy távol eső sarkában, értéke állandó 1.
Ennek másolását szorzással viszont már a makró csinálja. -
Sziasztok! Adott egy relatíve nagy .txt (file server jogosítások), amit AD-ból csak ebben a formában, vagyis sörtörésekkel tudok kiszedni. Emiatt a hosszabb elérési utak külön sorba kerülnek, így az excel-lel nem tudom megetetni, hogy ott kényelmesen tudjam rendezni az adatokat (elérési út, jogosítások, usergroup-ok, stb.). Most ott tartok, hogy megnyitottam excel-ben a txt-t, osztatlanul, tehát minden adat az A oszlopban sorakozik, a táblázat egyébként 224.000+ sorból áll.
Így fest egy "jó" adatblokk:
Path E:\fs\MGH\JO\irattar2012temp\001-049\015 belépők\2013. behajtási engedélyek
Owner BUILTIN\Administrators
AccessToString MAGHFS\Administrator Allow FullControl
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFilesÍgy pedig egy "rossz":
Path E:\fs\MGH\JO\irattar2012temp\001-049\014 utasítások-SZEMLELAPOK Rendszám szerint\Tárgyi eszköz beruház
ás, üzembe helyezés
Owner BUILTIN\Administrators
AccessToString MAGHFS\Administrator Allow FullControl
PUBLIC\LudvigA Allow FullControl
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
CREATOR OWNER Allow 268435456
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFilesA megoldás - szerintem - pl. az lehetne, hogy egy makró vmi ilyesmit csinálna:
1 Vizsgáld a cella tartalmát az A oszlopban
2 Ha a cella a következő karakterlánccal kezdődik
3 "Path", akkor ellenőrizd az oszlop A, sor+1 cellát
4 Ha a cella következő karakterlánccal kezdődik
5 "Owner", akkor ellenőrizd az A oszlop, sor+1 cellát
6 Ha bármi más, a cella értékét fűzd hozzá az A oszlop sor-1 cellájának értékéhez
7 bármi más, ugorj az A oszlop, sor+1 celláraCsak sajnos nem értek a makrókhoz.
Bármi más megoldás is jól jöhet persze.
-
BenJoe80
senior tag
Sziasztok!
Adva van egy táblázat Excel 2003-ban, ahol ha pl. A1=1 akkor B1="EZ", ha A1=2 akkor B1="AZ", ha A1=3 akkor B1="AMAZ" ill. ha A1 üres akkor, B1 is üres. Korábban segítettek ezt a táblázatot megcsinálni. Most viszont ahhoz kéne segítség, hogy azt hogy lehet megcsinálni, hogy a táblázatból kiválogassa az összes 1-es értékű sorokat valamint az ehhez tartozó összegeket (amit, amúgy manuálisan írok be) és összegezve beírja mondjuk C2-be? Továbbá ugyan így tegyen a 2-es ill. a 3-as értékű sorokkal is...
A válaszokat és segítségeket előre is köszönöm!
-
Mutt
senior tag
Hello,
...megnézni munkafüzetek füleinek a színét és egy meghatározott munkafüzet azonos nevű munkafüzeteinek a fül színét beszínezi...
Ezt tudod használni.
Sub Colorize()
Dim arrayColor() 'lapnev és lapszín megnevezése
Dim wbActual As Workbook
Dim c As Long, i As Long
Dim fileName As String
Const refFile As String = "c:\reference.xlsm" 'referencia fájl neve helye
Const filePath As String = "c:\list\" 'módosítandó fájlok helye
Const fileExt As String = "*.xls" 'módosítando fájlok kitejesztése
'a referencia alapján megjegyezzük a lapneveket és színeket
Set wbActual = Workbooks.Open(refFile)
ReDim arrayColor(1 To 2, 1 To wbActual.Sheets.Count)
With wbActual
For c = 1 To .Sheets.Count
arrayColor(1, c) = .Sheets(c).Name
arrayColor(2, c) = .Sheets(c).Tab.Color
Next c
End With
wbActual.Close
'végeztünk a referencia fájllal
fileName = Dir(filePath & fileExt, vbNormal)
'végigmegyünk a mappában lévő fájlokon
Do While Len(fileName) > 0
Set wbActual = Workbooks.Open(filePath & fileName)
With wbActual
For c = 1 To .Sheets.Count
For i = 1 To UBound(arrayColor, 2)
'ahol a lap neve egyezik ott szinezünk
If .Sheets(c).Name = arrayColor(1, i) Then
.Sheets(c).Tab.Color = arrayColor(2, i)
End If
Next i
Next c
End With
wbActual.Save
wbActual.Close
fileName = Dir
Loop
End Subüdv.
-
Kobe
veterán
helló
még egy syntax erroros problémám lenne
Van egy makróm amit egy másik, accesses makróból szeretnék futtatni. Ehhez az kell, hogy a makrót sorrol sorra be tudjam másolni az Excel Visual Vasic ablakába. 98% ban megy, de sajnos 2 helyen syntax errorra fut a "" jelek miatt
Az eredeti, exceles makró egy részlete - ha ilyen formában futtatom excelből, tökéletesen fut, tehát nekem szóról szóra ezt kellene visszakapnom a beillesztés után
Range("P2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-11]=""YES"",RC[-8]-RC[-10],RC[-9]-RC[-10])"
Selection.AutoFill destination:=Range("P2:P" & lngLastRow)Range("P2").Select2 módszert ismerek amivel be lehet illeszteni Excel VBA ba:
.InsertLines
vagy változóként definiálva
.InsertLines LineNum, "Range("P2").Select"
LineNum = LineNum + 1
.InsertLines LineNum, "ActiveCell.FormulaR1C1 = _"
LineNum = LineNum + 1
.InsertLines LineNum, ""=IF(RC[-11]="""YES""",RC[-8]-RC[-10],RC[-9]-RC[-10])""
LineNum = LineNum + 1vagy
Code = "Range("P2").Select" &vbNewLine
Code = Code & "ActiveCell.FormulaR1C1 = _" &vbNewLine
Code = Code & ""=IF(RC[-11]="""YES""",RC[-8]-RC[-10],RC[-9]-RC[-10])"" & vbNewLineA gondom az, hogy az Excelben a makró csak akkor fut le, ha az If feltételben megadott értéket 2 db idézőjellel írja vissza a modulba a program, pl ""YES"", mivel szöveges érték.
Akármelyik metódust választom a fentiek közül, mindig "levágja" 1 "" ra, és "YES" t csinált belőle és elakad a makró annál a sornál.
Próbáltam módosítani, de ha átírom accessben pl """YES""" re, akkor a sor többi részébe is be kell szúrnom plusz "" jeleket, mert nem fut le - Syntax Error - Expected End of Statement hibaüzit dob az accesses makró. Ha hozzáigazítom a többit, hogy jó legyen, akkor meg oda is felesleges "" jeleket rak be, ahova nem kéne, és így excelben akad el.
Van valami ötletetek, hogyan kellene a "=IF(RC[-11]=""YES"",RC[-8]-RC[-10],RC[-9]-RC[-10])" sort átrni, hogy a fent említett 2 megoldással is működőképes amradjon ?
-
zhari
csendes tag
Sziasztok!
Olyan macroban tudtok segíteni, ami megnézni munkafüzetek füleinek a színét és egy meghatározott munkafüzet azonos nevű munkafüzeteinek a fül színét beszínezi . (kb 80 munkafüzet és 6-7 színt használva)
Előre is köszönöm
-
Mutt
senior tag
válasz
Aladaar #16814 üzenetére
Hello,
2. adott egy táblázat, aminek az egyik oszlopában ha rászűrök egy-egy értékre, akkor azt szeretném, hogy az az érték látszódjon a táblázat felett egy külön cellában is.
Csak makróval megy és ha több kijelölésed van akkor is csak az első mutatja, itt a minta.
A szűrő feletti cellába tedd ezt (a filter tartományom A2:A11 volt):
=IF(SUBTOTAL(3;A$2:A$11)="";"";FilterCriteria(A$2))A kód pedig:
Public Function FilterCriteria(rng As Range) As String
Dim Filter As String
On Error GoTo Finish
With rng.Parent.AutoFilter
If Intersect(rng, .Range) Is Nothing Then GoTo Finish
With .Filters(rng.Column - .Range.Column + 1)
If Not .On Then GoTo Finish
If .Criteria1 <> "" Then Filter = .Criteria1
End With
End With
Finish:
FilterCriteria = Replace(Replace(Filter, "*", ""), "=", "")
If Filter = "" Then FilterCriteria = ""
End Functionüdv.
-
hallgat
csendes tag
válasz
m.zmrzlina #16812 üzenetére
Szia!
Köszönöm!Közben egy favágó módszerrel megoldottam.
Felvettem egy cellát, aminek az értéke 1, majd ezt másolom az átalakítandó cellákra irányítottbeillesztéssel, a szorzást választva.
Nem túl szép, de működik -
rtom
senior tag
Szevasztok,
újabb problémával szembesültem, egy lapvédett oldalon szeretnék pivot-ot használni, a pivot celláit felszabadítottam (Cellaformázás->Védelem->Zárolt pipa kilőve), illetve a lapvédelemnél AllowUsingPivot = True; AllowFiltering = True, mégsem tudom a szűrési feltételeket módosítani védett állapotban. Mit nézek el?
-
Bishop1
tag
Sziasztok!
Bagatell kérdésem volna, hogy lehet a léptetőnyilat átfordítani?
Hogy ne le-fel hanem jobb bal irányba mutasson.
Active x vezérlőnyilat gond nélkül átfordítja ha keresztülhúzom a szemközti sarkon de a sima űrlap vezérlőnyilat nem és kezdek a falra mászni... -
Aladaar
tag
válasz
Aladaar #16779 üzenetére
hurrá, találtam megoldást az első problémámra! Kicsit fapados, de működik.
1. van egy táblázatom, aminek az első oszlopában egy-egy érték többször is előfordulhat. Van egy listám, és ez alapján szeretnék szűrni a táblázatra, hogy csak a listában szereplő értékű sorok látszódjanak, csak nem szeretném ezeket manuálisan egyenként kiválasztani
az egyszerűség kedvéért legyen a táblázat 5 sor, 6 oszlop (A1
5), a lista mondjuk H1:H10.
a táblázat alá beírom az alábbi képletet, és lehúzom 5 sornyit, jobbra 6 oszlopnyit
=HA(+FKERES($A1;$H$1:$H$10;1;0)=$A1;A1;"")
majd másol, beilleszt értékként, és A oszlop szerint sorbarakom.
viszont a másodikra továbbra sem találtam megoldást, valaki tud segíteni?2. adott egy táblázat, aminek az egyik oszlopában ha rászűrök egy-egy értékre, akkor azt szeretném, hogy az az érték látszódjon a táblázat felett egy külön cellában is.
-
bulanjoe
tag
Hali.
Figyelem, Excel for Mac kérdés jön:
Adott egy excel munkafüzet, benne két lappal (nem tudom, hogy mondják ezt szépen magyarul) worksheet
Az első lap, adatok rögzitésére szolgál, a másodikon egy pivot table rendezi, összegzi, és feldogozza a bevitt adatokat.
Az első lapon leegyszerűsítve így néz ki egy adatsor:
datum bank -11 kiadas
datum bank2 35 kiadas
datum paypal -55 kiadasNa ezt képzeld el sok sok sorral, több hellyel ahol a pénz lehet (bank, penztarca, masik penztarca, kocsi, paypal, kolcson, stb)
Az van, hogy sokszor egy egy hely nincs használva viszont kell, pl a paypal. általában nincs benne pénz és ilyenkor nincs miért nézni, viszont megesik, hogy oda érkezik valami, és akkor a pivot table-n bekapcsolom, hogy mutassa azt az oszlopot is.
Mindez működik szépen a windowos officeon, viszont macen már nincs olyan opcióm, hogy a már eltüntetett adatokat előhozzam.Itt van egy példa fájl, remélem nem hagytam benne kényes infót.
[link]
Ebben a példában, most bevittem egy adatot, miszerint a paypalba érkezett pénz.
Windowson ezt szépen beállítom, hogy akkor a kimutatásban mutassa ezentul a paypalt is, mert már van benne valami.
Macen mindezt nem tudom megcsinálni... azaz ha windowson valamit kikapcsoltam, macen már nem tudom előhozni.1. én vagyok a hülye és nem találom ezt az opciót?
2. felejtsem el, hogy macen ilyesmiket kapcsolgatok?
3. hogy hozzam fel ezt a problémát angolul,( hogy hívják azt amit én itt kapcsolgatni akarok), hogy más angol nyelvű fórumokon is tudjak zaklatni?
köszi -
atillaahun
veterán
válasz
Excelbarat #16790 üzenetére
Köszönöm, jól működ, tényleg sokkal jobb kézzel számoltatni vele.
-
hallgat
csendes tag
Sziasztok!
Elakadtam egy valószínűleg triviális problémánál.
2010 Excelben makró.
A képleteket kicserélem csak adatokra úgy, hogy a kijelölt részt rámásolom saját magára, érték beillesztéssel.
A bajom az, hogy a számokat szövegként fogja betenni, amit ugyan kézzel könnyű átalakíttatni vele, de ez most nem jó.
A makró lefutása után a cellában már számként tárolt számnak kellene lennie, mert addig a mellette lévő FKERES sem működik stb...Sajnos nem találtam rá utalást, hogy ezt miként lehet makróban megadni.
Próbálkoztam ezzel: Paste:=xlPasteValues*1 ami ugyan lefutott, de eredményt nem hozott, továbbra is szövegként tárolta a számot.Előre is köszi, ha van valakinek megoldása!
-
Wasquez
senior tag
Excel táblázatból hogyan kell a képleteket kiszedni egy táblázatból az értékek mögül?
Azt szeretném, hogy a számítások ne látszódjanak a cella értékek mögött!? -
Traxx
őstag
Nagyon köszönöm, tökéletes!
Most már szerintem némi formázástól eltekintve ez marad a végleges változat
Egyébként a trükközés az egész táblázatra jellemző, mert az elején lévő srafozásos részt 2010-es excel alatt elég hamar összedobta a kolléga - csak éppen ahol használatban lenne ez az egész, ott csak 2003 van. És nem volt túlzottan nagy akarat a verziófrissítésre, és arra, hogy 50K-t rááldozzon a cég 1 táblázat kedvéért. Ami részemről is érthető és jogos
Fire/SOUL/CD: értem, amit mondasz, és van is benne igazság. Viszont ez a karbantartási lap kinyomtatásra kerül, és egyéb funkciója nem lesz, legalábbis a gépen nem. Tehát pl. jön egy javítás febr. végén, már tudjuk, mit fogunk végezni az adott gépen, vagyis a lap fölötti részletezés a legördülő menüből meglesz. Innentől kezdve Mutt megoldásának hála már csak a hónap számát kell módosítanom a karbantartási lapon, és beírni egy javítási dátumot, azt követően pedig kinyomtatni. Az adott gépnél a következő javításnál pedig ugyanezt lejátszani...az ebben az esetben lényegtelen, hogy az előző lap a gépen nem lesz meg, hiszem a funkcióját papír alapon tölti majd be.
Tehát én úgy látom, hogy pontosan így fog a kezem alá dolgozni
eredetileg is így szerettem volna valahogy (és nem csak én, hanem az is, aki majd kezelni fogja ezt a tervet), szóval boldog lehetek
Jobb, kézreesőbb megoldástól nem zárkózok el, ha van javaslatod...mindig, mindent lehet még jobban és egyszerűbben
De ez a mostani helyzet is korrekt szerintem.
-
Pont most linkelte Mutt a trükkös megoldást, kár, hogy nem töltötte le a teljes táblázatot.
Esetedben ez annyit tesz, hogy minden egyes sorszámozott lap esetén egyéni "trükk" kell, ergó többet fogsz ezzel eltölteni, mint hogy a progi a kezed alá dolgozzon (mert így nem lehet egységes eljárást készíteni, mindhez külön kell lényegében) -
pigster
senior tag
Alternatív megoldás az INDIREKT függvénnyel.
Még jó hogy havonta kell csinálnia, nem naponta...
Egyébként érdemes megnézni: Több érték visszaadása keresésből -
Mutt
senior tag
Hello,
lappy megoldása tökéletes. Az összes kereső függvénnyel (FKERES, HOL.VAN) az a gond, hogy csak 1 találatot add vissza, neked viszont akár több is kellene, ezt megoldani csak trükkösen lehet.
B90-be menjen ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0);4)
B91-be ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0)+1;4)
D95-be ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0);9)
D96-ba ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0)+1;9)Az INDEX helyett akár az ELTOLÁS függvény is használható.
Alternatív megoldás az INDIREKT függvénnyel.
B90:
=INDIREKT("D"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79))
B91:
=INDIREKT("D"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79)+1)
D95:
=INDIREKT("I"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79))
D96:
=INDIREKT("I"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79)+1)üdv.
-
Traxx
őstag
válasz
Fire/SOUL/CD #16801 üzenetére
Ezt úgy érted, hogy kb. bukta a dolog?
Mert annak nem nagyon örülnék...
-
Az nem megoldás, különösen, ha keresések is zajlanak, beépített fx-ekkel...
Traxx
Itt sajnos a legalapvetőbb problémát kellene kiküszöbölni, azt, amit adatbázisok estén egyszerű, de excelnél adatbázisul szolgáló táblázatoknál nem lehet (vagy igen körülményesen (min. makrót bevonva))
Nálad -adatbázis esetén így nevezik- egy a többhöz kapcsolat kellene... (legördülő listák alapból alkalmatlanok erre, stb stb)
Új hozzászólás Aktív témák
- sziku69: Fűzzük össze a szavakat :)
- PlayStation 5
- Okos Otthon / Smart Home
- Milyen TV-t vegyek?
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- sziku69: Szólánc.
- Milyen videókártyát?
- Óvodások homokozója
- További aktív témák...
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap
- Antivírus szoftverek, VPN
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Keresem az alábbi PC játékokat! (Teljes lista a leírásban!)
- Game Pass Ultimate előfizetések 4 - 19 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Xiaomi Redmi Note 13 256GB Kártyafüggetlen 1 év Garanciával
- HP 14 Pavilion FHD IPS i5-1135G7 4.2Ghz 16GB RAM 512GB SSD Intel Iris XE Graphics Win11 Garancia
- Részletre elviheted akár 365 napra. Bankmentes. Gamer Laptopok , Gamer monitorok
- Eladó karcmentes Xiaomi Redmi Note 10 5G 4/128GB / 12 hó jótállással
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest