-
IT café
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
-
Zola007
veterán
válasz Fferi50 #41039 üzenetére
nem, mert akkor kitakarja az egyébként is szűkös helyet a 7" képernyőn az idő nagy részében
van rá makró, ami kiteszi textboxba a cella tartalmát, amire ráállsz, de az is állandó helyet foglal[ Szerkesztve ]
Mʏ ᴘʜɪʟᴏsᴏᴘʜʏ ɪs: Iᴛ’s ɴᴏɴᴇ ᴏғ ᴍʏ ʙᴜsɪɴᴇss ᴡʜᴀᴛ ᴘᴇᴏᴘʟᴇ sᴀʏ ᴏғ ᴍᴇ ᴀɴᴅ ᴛʜɪɴᴋ ᴏғ ᴍᴇ. I ᴀᴍ ᴡʜᴀᴛ I ᴀᴍ ᴀɴᴅ I ᴅᴏ ᴡʜᴀᴛ I ᴅᴏ. I ᴇxᴘᴇᴄᴛ ɴᴏᴛʜɪɴɢ ᴀɴᴅ ᴀᴄᴄᴇᴘᴛ ᴇᴠᴇʀʏᴛʜɪɴɢ. Aɴᴅ ɪᴛ ᴍᴀᴋᴇs ʟɪғᴇ sᴏ ᴍᴜᴄʜ ᴇᴀsɪᴇʀ. - Sɪʀ Aɴᴛʜᴏɴʏ Hᴏᴘᴋɪɴs
-
Zola007
veterán
válasz Fferi50 #41042 üzenetére
Ha átírod nekem, az megköszönöm
Ezt próbáltam, de nem az igaziI have experimented with loading a TextBox when you click a particular cell using the WorksheetSelectionChange event.
In the VB Editor this is pasted into the 'Sheetx(Sheet x) of the sheet you are using it in.
Currently the range is set to column A. If any cell in column A is clicked it loads a UserForm with only a TextBox in it with the content of the cell clicked on.Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A1:A65000")) Is Nothing Then
UserForm1.TextBox1.Value = Target.Value
UserForm1.Show
End If
End SubYou will need to create a UserForm.
Right-Click Forms > Insert > UserForm.
If it's the only one it defaults to userForm1
Add a TextBox to it.The TextBox Properties must be set to
MultiLine = True
Wordwrap= TrueYou can also add scrollbars if there's a lot of text.
You can change the Properties by right-clicking on the UserForm in the VBA window.
[ Szerkesztve ]
Mʏ ᴘʜɪʟᴏsᴏᴘʜʏ ɪs: Iᴛ’s ɴᴏɴᴇ ᴏғ ᴍʏ ʙᴜsɪɴᴇss ᴡʜᴀᴛ ᴘᴇᴏᴘʟᴇ sᴀʏ ᴏғ ᴍᴇ ᴀɴᴅ ᴛʜɪɴᴋ ᴏғ ᴍᴇ. I ᴀᴍ ᴡʜᴀᴛ I ᴀᴍ ᴀɴᴅ I ᴅᴏ ᴡʜᴀᴛ I ᴅᴏ. I ᴇxᴘᴇᴄᴛ ɴᴏᴛʜɪɴɢ ᴀɴᴅ ᴀᴄᴄᴇᴘᴛ ᴇᴠᴇʀʏᴛʜɪɴɢ. Aɴᴅ ɪᴛ ᴍᴀᴋᴇs ʟɪғᴇ sᴏ ᴍᴜᴄʜ ᴇᴀsɪᴇʀ. - Sɪʀ Aɴᴛʜᴏɴʏ Hᴏᴘᴋɪɴs
-
Bacusuz
őstag
válasz Fferi50 #41048 üzenetére
mert nem volt benne.
volt egy 2018 és egy 2019-es nagy összefoglaló excel, amelyekből szűrtem ki adatokat.
ezek eredményeit másoltam egy excelbe amiben kaptam tőletek a segítséget[ Szerkesztve ]
ÜDV! Bacusuz. Veszélyes környéken lakom. Ahányszor becsukom az ablakot, mindig odacsukom valaki kezét.
-
Delila_1
Topikgazda
válasz Fferi50 #41068 üzenetére
Másképp értelmezem. A kitöltött táblázat egy bizonyos sorát kell törölni, majd ehelyett a tábla végére egy utolsó, üres sort beszúrni.
Vegyük, hogy a J12 cella tartalmazza a törlendő sor számát, ott láttam helyet a beírásra.
Sub Beszur_Torol()
Rows(Range("J12")).Delete Shift:=xlUp
Range("A109").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A108:H108").Copy
Range("A109:H109").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub41066, ny.janos: Az összesít képlettel az a baj, hogy a szűrést megszüntetve nem marad meg a sorszámozás.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
logitechh
csendes tag
válasz Fferi50 #41068 üzenetére
alapból így lenne de egy másik makró pakolja az utolsó üres sorba az értékeket egy másik munkalapról és ha csak a tartalmat törlöm akkor pl a 71. sor üres lesz majd a 72. sorba érték. Ezért szeretném a 71. sort törölni és az utolsó üres sor utáni sorba illeszteni az új adatokat
-
logitechh
csendes tag
válasz Fferi50 #41073 üzenetére
Újragondoltam a storyt
Delia nagy igazságát szem előtt tartva plusz a tiédet(nincs összevonás veszélyes a sorok törlése) sokkal egyszerűbb megoldásra jutottam.
Persze ehhez ti kelletek.
Mégpedig egy helyre bemásolom az adatokat amit behivatkozok a megformázott táblázatba egyszerű képlettel. Ahonnan meg hivatkozom kedvemre törölgethetek
Végül is erre való a fórum, hogy egymástól okosodjunk. Igaz 4 éjszakányi meló megy a kukába de így legalább könnyen javítható lesz és gyorsabb is
Köszi mindannyitoknak -
BullZeye
veterán
válasz Fferi50 #41134 üzenetére
Most vagy félreértem, vagy azt javaslod, hogy egyesével jelöljem ki a több 100 egyesített cellát, majd egyesével húzzam jobbra őket? Mert ezzel tisztában vagyok, ezt szeretném elkerülni, főleg mert ha 300 húzásnál 1x 1 cellát tévedek, és nem veszem észre, annak senki se fog örülni.
-
Miertvansote
tag
válasz Fferi50 #41247 üzenetére
Kösznöm szépen, a második érsz világos.
De sajna az elsőt próbálgatom de sehogy nem működik :S.Bemásoltam az excel amit küldtél de hiába húzom le nem változik a szám.
Ja annyi még hogy számít hogy angol az excel ? Mert az van nekem.
Átírtam a sor row-ra de így sem működik.
Még azért próbálkozom még.
Köszi.
[ Szerkesztve ]
-
RAiN91
őstag
válasz Fferi50 #41271 üzenetére
Renden, köszönöm, kísérletezgetek.
Nagyon nem értem a témát, de korábban még te írtad ezt az eseménykezelést, ami akkor meg is oldotta az akkori problémát (makró elejére Application.EnableEvents=false, végére true), gondolom erre gondolsz. Ez az excel egy adatforrásra van csatlakoztatva és 200ms-ként változnak az adatok.
Próbálgatom, nem hiszem, hogy bonyolult lenne a megoldás.[ Szerkesztve ]
-
RAiN91
őstag
válasz Fferi50 #41271 üzenetére
Sajnos nem találtam megoldást. Annyi a lényeg, ha egy cella értéke változik, akkor írja ki az új értéket, majd ha megint változik, akkor a tőle egyel jobbra lévő cellába írja ki, és így tovább, de mindig menjen vissza az elejére is írja felül.
Tehát pl. A1-be kiíratom, majd B1-be, majd C1-be, de a következőt megint A1-be, B1 stb.
Erre esetleg tudsz valami egyszerű megoldást?
Köszönöm! -
RAiN91
őstag
válasz Fferi50 #41277 üzenetére
Szia
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A1"), Range(Target.Address)) Is Nothing Then
Range("B1").Offset(0, k).Value = Target.Value
If k < 2 Then k = k + 1 Else k = 0
End If
End SubÍgy már félig működik, csak az Offsetet nem lépteti valamiért. Mindig B1-be írja csak a változást, és azt írja felül.
-
RAiN91
őstag
válasz Fferi50 #41283 üzenetére
Nem működött, mert nem tudtam elindítani, mert feljött az ablak, hogy melyik makrót akarom elindítani. De már rájöttem, nem kell elindítani, alapból fut.
Annyi a probléma, hogy kézzel működik, ha beírok valamit és entert nyomok (bár ha ha ugyan azt az értéket írom be neki, akkor is ő beírja a következő cellába), viszont ha rákötöm az adatforrásra, és változnak a számok másodpercenként, nem ír be semmit.
Időzítő lenne a másik megoldás, amit írtál is korábban, de sokkal jobb lenne egy ilyen megoldás.
-
RAiN91
őstag
válasz Fferi50 #41286 üzenetére
Szia
Sajnos makrót nem tudok adni. BetAngel a program, amire rá van kötve, a programon belül kell kiválasztanom az excelemet, majd a programban rányomni, hogy connect.
Esetleg nem lehet átformázni valahogy, hogy úgy érzékelje a változást, mintha kézzel írnám be? Pl. egy másik cella értékét egyenlővé tenni azzal a cellával, ahol változnak az értékek, vagy nem tudom.
-
huan
őstag
válasz Fferi50 #41292 üzenetére
Szia!
Az x-eket ki helyezi el a táblázatban?
Az x-eket, vagy az egész F-oszlopra nincs szükség, ha a G-oszlop tud "nélküle" működniAhol kész van, oda már nem kellene írni a G oszlopba?
Maradhat üresen is, valóban. Csak azért írtam minden cellába, hogy majd az FKERES "rátaláljon" majd az első cikk találat mellett.Ahol még nem történt művelet, azaz 0 a jó+selejt, oda nem kell semmit írni?
Jogos. Csak akkor ha ez az első művelet cikken belül. (pl.24.sor, 27.sor)Hiszen ott még minden művelet hátravan. Vagy extrém esetben, ha minden db selejtté válik "útközben", akkor arra a műveletre már nem kerül sor.... ?
Csak azok a műveletek kellenének, akiken éppen "van munka", nem az összes hátralévő.
Ha minden darab selejtté válik valahol, akkor nem lesz mit feldolgozni a következőnek, így ott vége a "munkának". (F-oszlop: Ha D+E=C (jó+selejt=össz db) akkor KÉSZ >> F=KÉSZ -már nem érdekes)[ Szerkesztve ]
-
RazoR
veterán
válasz Fferi50 #41313 üzenetére
Szia!
Adott egy munkafüzet több lappal.
Az első lapon van egy tábla legördülő menüvel ami ilyen:Az itt lévő adatokat egy másik lapon lévő táblázatból szedem ami ilyen:
Az lenne a lényeg, hogy az első lapon a legördülő menüben kiválasztva az adatot olyan színű legyen a betű mint a második lapon a fő kategória (Offensive, Defensive, Utility), de akárhogy próbálom nem tudom egyszerre megadni a Defensive alatt lévő 4 adatra egyszerre a formázást.
Mit csinálok rosszul?Remélem érthető a problémám....
Egyesével meg tudom oldani cellánként, de rengeteg az adat és egyszerűbb lenne csoportosan beállítani a formázást.
[ Szerkesztve ]
-
RazoR
veterán
válasz Fferi50 #41318 üzenetére
Ha jól értelek akkor azt nem lehet hogy pl. a Munkalap 1-en szinezzen az A1 cellában attól függően hogy a legördülő listában milyen szöveget választok ki aminek a forrása a Munkalap 2 A1-A10 tartomány, úgy hogy pl. az A1-A3-ig ha ebből választok akkor piros, ha A4-A8-ig akkor kék, stb.
Minden sorra egyesével kell létrehozni a feltételes formázást? -
bteebi
veterán
válasz Fferi50 #41352 üzenetére
"Mondjuk a hiba rendezése után a keretet sem ártana eltörölni..."
Nem tudom, hogy ezzel mire gondolsz, keretet (rácsot) direkt rajzolok, véglegesnek. Igazából egy másik makróból berajzolhatnám azt a plusz 2 sort is, de amiatt nem teszem, mert így jobban látszik, hogy az a rész még nincs "kitöltve". Persze ha változik a cella tartalma, akkor többször lefut ugyanaz a parancs feleslegesen, de ez érdemben nem lassít semmit se.
Meg még annyit Delila korábbi válaszára, hogy több soros tartomány esetén így jó a kód:
With rng
.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
End WithPersze nekem eredetileg csak egy sor volt, de ha valaki egy több sorból és oszlopból álló területhez akar rácsot adni, annak kell a
Borders(xlInsideHorizontal)
is.#41357: Köszi, akkor majdnem teljesen biztos, hogy az volt a gond. Egy (nekem) elég bonyolult makróban volt, sok If mellett, de végül látszólag sikerült jóra javítanom .
[ Szerkesztve ]
Cancel all my meetings. Someone is wrong on the Internet.
-
HREH
senior tag
válasz Fferi50 #41376 üzenetére
Köszi!
Jól működik, a gond csak annyi vele, hogy ha egy másik munkalapról beillesztek pl. 5 sornyi színt, akkor Run-time error: '13' Type Mismatch hibát dob.
Ezt ki lehet valahogy küszöbölni?"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."
-
Fferi50
őstag
válasz Fferi50 #41395 üzenetére
Szia!
A problémát mégis az okozta, hogy az adott cella (B2) egyesített cella volt, így a Target objektum mindhárom cellát tartalmazta, ezért nem tudott értéket vizsgálni rajta.
Mivel az első feltétellel megállapítottuk, hogy a B2 cella "benne van" a tartományban, utána már hivatkozhatunk rá közvetlenül:
If Range("B2").Value="" Then
Üdv.
-
Jazz
veterán
válasz Fferi50 #41419 üzenetére
Köszi,
almával működik, de 50%-al nem.
A cella típusa %.
Azonban hiába írok a képletbe 50-et vagy 50%-ot, nem működik.
(Úgy működik, hogy szöveggé alakítom a cellát, és 50%-ot írok a cellába is. Azonban meg kéne hagyni a cella % formátumát.)
Meglehet ezt is oldani valahogy?
free your mind
-
Delila_1
Topikgazda
válasz Fferi50 #41438 üzenetére
Másképp próbáltam.
Szűrtem, kijelöltem a cellákat, ahova a képlet kerül, az elsőbe beírtam a képletet, Ctrl+Enter-rel vittem be egyszerre a kijelölt tartományba. Megszüntettem a szűrést, és a teljes oszlopra hajtottam végre a másolást, értékként való beillesztést.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
spe88
senior tag
válasz Fferi50 #41497 üzenetére
Köszi a segítséget. Átalakítottam. Valamit nem jó helyre írtam szerintem.
Private Sub Workbook_Open()
Public ASH As Worksheet
Set ThisWorkbook.ASH = ActiveSheet
Sheets("HELP_DATA").Select
Columns("E:E").Select
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Add Key:=Range("E1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HELP_DATA").Sort
.SetRange Range("E2:E601")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("HELP_DATA").Select
Columns("G:G").Select
Range("G2").Activate
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("HELP_DATA").Sort.SortFields.Add Key:=Range("G2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("HELP_DATA").Sort
.SetRange Range("G2:H601")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
End With
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Munkalap aktiválásakor mengnézzük, hogy az új munkalap a védendő-e:
If Sh Is Worksheets("Output") Then
'Ha a védendő, akkor jelszót kérünk:
If InputBox("Jelszó:") = "blbla" Then
'Ha jó a jelszó, engedjük az aktívvá tételt,
'és elmentjük új aktívként
Set ASH = ActiveSheet
Else
'Ha rossz, akkor:
MsgBox "Ehhez a laphoz Neked semmi közöd!!"
'Visszaállítjuk az előző munkalapot aktívnak:
ThisWorkbook.ASH.Activate
End If
End If
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Output" Then Set ThisWorkbook.ASH = ActiveSheet
End SubA 2. sornál megakad:
Compile Error:
Invalid attribute in Sub or Function
Mit tegyek? Köszönöm
[ Szerkesztve ]
Spóroljunk! Kerül, amibe kerül!
Új hozzászólás Aktív témák
- Mobil flották
- Apple iPhone 15 Pro Max - Attack on Titan
- Samsung Galaxy S10 és S10+ duplateszt
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
- Projektor topic
- AMD Navi Radeon™ RX 6xxx sorozat
- Max
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen