- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Aggregátor gondjai, örömei, és elmélkedései
- Chosen: Canon 5D II - portrézás 2025-ben
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Drivv: Prehistorik 2 - Retró Játékpercek! 1. rész
-
LOGOUT
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
-
-
nordican
tag
válasz
nordican #33984 üzenetére
Hú, úgy tűnik, működik!
Ez k...a jó!
Ide raktam be:Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("C65"), Range("C69"))) Is Nothing Then
Rows(Target.Row).AutoFit
If Not Intersect(Target, Range("C65")) Is Nothing Then
With Sheets("Munka1").Range("B14")
.Value = Target.Value
Sheets("Munka2").Range("B14").MergeArea.UnMerge
Sheets("Munka2").Range("B14").Rows.AutoFit
Sheets("Munka2").Range("B14:E14").Merge
End With
End If
If Not Intersect(Target, Range("C69")) Is Nothing Then
With Sheets("ajánlat1").Range("B26")
.Value = Target.Value
.Rows.AutoFit
End With
End If
End If
End Sub -
Fferi50
Topikgazda
válasz
nordican #33982 üzenetére
Szia!
Nyilván nem ezen fogunk összeveszni
A munkalap tulajdonságait Te ismered, mi csak javaslatokat tudunk adni.
Egyébként az összevonást is meg lehet szüntetni és a sormagasság állítása után vissza lehet állítani.Range("B2").MergeArea.UnMerge
Range("B2").Rows.AutoFit
Range("B2:C2").MergeÜdv.
-
-
Fferi50
Topikgazda
válasz
nordican #33971 üzenetére
Szia!
Íme:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("A1"), Range("A3"))) Is Nothing Then
Rows(Target.Row).AutoFit
If Not Intersect(Target, Range("A1")) Is Nothing Then
With Sheets("Munka2").Range("B2")
.Value = Target.Value
.Rows.AutoFit
End With
End if
If Not Intersect(Target, Range("A3")) Is Nothing Then
With Sheets("Munka2").Range("B4")
.Value = Target.Value
.Rows.AutoFit
End With
End If
End If
End SubÜdv.
-
Delila_1
veterán
válasz
nordican #33971 üzenetére
Csak most nézem a feladatodat, de már az elején zavaros. Biztosan ezért nem kapsz érdemi választ.
"...az A1 és az A3 cellában készül két különböző (többtételes) lista..."Egy cellában nem lehet lista, csak egyetlen adat.
Tegyél fel egy füzetet, amiben a lapjaid neve az igazi. Írj valamilyen adatokat, ahova kell, és írd bele azt is, hogy mit akarsz ezekből kihozni.
-
Fferi50
Topikgazda
válasz
nordican #33959 üzenetére
Szia!
Ez soha nem fog a makrók között megjelenni - és nem is kell neki - mivel eseménykezelés paraméterekkel.
Amit írtál, az minden esetben az első sor magasságát fogja automatikusan állítani, amikor a munkalapon változtattál valamit - de ez nyilván felesleges minden alkalommal. Ezért írtam, hogy a Change eseményben kell megvizsgálni, hogy szükséges-e a sormagasság állítása (csak nem tűnt ki a hozzászólásból rendesen):
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("A1"), Range("K1"))) Is Nothing Then Makró1
'ide sorold fel az Union függvényen belül azokat a cellákat, ahol listád lesz.
End SubA meghívott makróba pedig beleteszed az összes olyan munkalapot, ahol változtatni kell:
Sub Makró1()
Sheets("Munka1").Range("A1").Rows.AutoFit
Sheets("Munka2").Range("A1").Rows.AutoFit
Sheets("Munka1").Range("K1").Rows.AutoFit
Sheets("Munka2").Range("K1").Rows.AutoFit
'és így tovább, minden lapra és cellára
End SubTehát két részből áll a folyamat. Az első rész a Change eseményben van, ami megvizsgálja, kell-e állítani sormagasságot, ha igen, meghívja a második részt (makró1), ami ténylegesen elvégzi az állításokat.
Üdv.
-
poffsoft
veterán
válasz
nordican #33959 üzenetére
nem is .
ez egy lap eseményhez rendelt makró.
vagyis, minden alkalommal, ha a munkalapon megváltoztatod valamelyik cella tartalmát, automatikusan lefut.
Mondjuk én a target.rows.autofitet használnám, vagyis annak a sornak a magasságát állítani, amelyikben éppen szerkesztettél.
ha ugyanezen a címen kell igazítanod a másik lapon, akkor még beszúrnám:
sheets("Munka2").range(target.address).rows.autofit -
Fferi50
Topikgazda
válasz
nordican #33944 üzenetére
Szia!
Magától nem növekszik a sormagasság
, akkor sem, ha egyszer beállítottad ezt a tulajdonságot. Sajnos minden alkalommal újra kell állítani, amikor adat kerül bele. Erre csinálhatsz egy makrót (rögzítés), amit betehetsz a főlapod változás eseményébe (worksheet_change). Ezáltal lefuthat, valahányszor módosítod a celládat.
Pl.Range("A1").Rows.AutoFit
Ha eléteszed a munkalapot, akkor az adott munkalapon hajtja végre:Sheets(1).Range("A1").Rows.AutoFit
Az esemény vizsgálatnál meg kell nézned, hogy valóban egy listás cellát változtattál-e meg, ennek egyik módja lehet:
IPrivate Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("A1"), Range("K1"))) Is Nothing Then Makró1
'ide sorold fel az Union függvényen belül azokat a cellákat, ahol listád lesz.
End SubSub Makró1()
Sheets("Munka1").Range("A1").Rows.AutoFit
Sheets("Munka2").Range("A1").Rows.AutoFit
'és így tovább, minden lapra és cellára
End SubÜdv.
-
poffsoft
veterán
válasz
nordican #33903 üzenetére
Liste=Activesheet.Name
Gondolom, le lehet kérdezni a kijelölt sheetek neveit is.
Ha csak az aktivesheet kell, akkor pl:
Sub Makro1()
Dim rng As Range
Dim c As Range
Set rng = Range("A1:F100")
For Each c In rng
With c.Interior
If .ColorIndex = 6 Then
.ColorIndex = None
.Pattern = xlNone
End If
End With
Next c
End Sub -
poffsoft
veterán
válasz
nordican #33891 üzenetére
Én ezt barkácsoltam:
Sub Makro1()
Dim list() As String
Dim liste As String
Dim i As Integer
Dim c As Range
Dim rng As Range
liste = "Munka1,Munka2,Munka3" 'a munkalapok nevei, ahol keresni kell, vesszővel elválasztva
list() = Split(liste, ",")
For i = 0 To UBound(list)
Set rng = Sheets(list(i)).Range("A1:F100")
For Each c In rng
With c.Interior
If .ColorIndex = 6 Then
.ColorIndex = None
.Pattern = xlNone
End If
End With
Next c
Next i
End Sub -
poffsoft
veterán
válasz
nordican #33891 üzenetére
Egy bizonyos lapon lévő rangera a hivatkozás:
Sheets(1).Range("A1", "F100").Select
vagySheets("Munka1").Range("A1", "F100").Select
a sárga cellák szűrése (feltéve, hogy a colorindex=6 sárgáról van szó):
With Selection.Interior
If .ColorIndex = 5 Then
.ColorIndex = None
.Pattern = xlNone
End If
End With -
nordican
tag
válasz
nordican #33885 üzenetére
Összebarkácsoltam egy ilyet, de ez még nem tökéletes, mert minden hátteret eltüntet, én meg csak a sárga hátteret szeretném kiszedni, és a Range-hez is az adott munkalapot kellene beírni.
Sub Makro1()
Range("A1", "F100").Select
With Selection.Interior
.ColorIndex = None
.Pattern = xlNone
End With
End Sub -
Fferi50
Topikgazda
válasz
nordican #33824 üzenetére
Szia!
Ilyet csak userformon elhelyezett DropDown vezérlővel lehet csinálni, ott be lehet állítani, hogy begépelésnek megfelelően folyamatosan szűkítse a választékot.
De ez már még mélyebb VBA ismereteket kíván, mivel az így kapott értékeket el kell helyezni a megfelelő munkalapra stb.
Üdv.
-
nordican
tag
válasz
nordican #33823 üzenetére
De megint eszembe jutott valami:
Az automatikus kitöltés csak egy munkalapon belül működik? (arra gondolok, hogyha elkezdek gépelni valamit egy oszlopban, és az már korábban előfordult, akkor az Excel felajánlja a kiegészítést). Na, ez tök jó funkció lenne Munkalapok között vagy akár másik fájlban lévő Munkalapok között. Tudom, lehetne legördülő listát is csinálni, de ha van 100 tétel, nem olyan jó móka, kiválasztani egy adott tételt egy hosszú listáról, jobb lenne az automatikus kiegészítés. Ez sem létszükséglet, de ha van rá egyszerű megoldás, érdekelne. -
poffsoft
veterán
válasz
nordican #33812 üzenetére
1) van egy modulod (Module1) a public function name()-vel
2) a munkalapodon (Munka1) kell (VBA szerkesztőben duplaklikk) pl. az activate eseményhez rendelned az értékadást:Private Sub Worksheet_Activate()
ActiveSheet.PageSetup.CenterHeader = Module1.name()
End SubA linkre tudtommal nincsen, én a szöveg utáni cellába szoktam egy [Link] szöveg mögé szúrni a linket.
-
Fferi50
Topikgazda
válasz
nordican #33804 üzenetére
Szia!
Nem az Excelben, hanem a Visual Basic Application helpben (VBA) van, ami a makró nyelve.
A PageSetup a Worksheet egy "tulajdonsága" ami objektumként használható, "rajta vannak" az oldalbeállítás különböző lehetőségei.A VBA nézetben F2 funkcióbillentyűvel hívhatod elő az Object Browsert:
Ha itt a Help (sárga kérdőjel) -re kattintasz, miközben kiválasztottad a Pagesetup objektumot, akkor előjön az internetről a hozzá kapcsolódó help.
Üdv.
-
Fferi50
Topikgazda
válasz
nordican #33799 üzenetére
Szia!
Az élőfejbe képletet nem tudsz írni, csak a feldobott állandókat. Erre írtam, hogy ott szerintem maradhatna az elérési út is a fájlnévvel vagy anélkül.
De, ha már makrózol és ezek szerint makrózol, akkor a Worksheet.PageSetup objektum az ahova be tudod írni amit szeretnél, Left/Right/CenterHeader ill.Footer tulajdonságoknak adhatod meg az értékét.
Ezt megteheted a nyomtatás meghívása előtt, pl. az előző hsz-ban levő függvényt felhasználva:ActiveSheet.PageSetup.CenterHeader=neve()
Üdv.
-
Fferi50
Topikgazda
válasz
nordican #33787 üzenetére
Szia!
Az előttem szólóhoz csatlakozom:
Létrehozol egy nevet a következők szerint: NEVE, a hivatkozásba beírod =CELLA("filenév")
Ezután alábbi tömbképlettel megkapod a mappa nevét:=HELYETTE(KÖZÉP(NEVE;NAGY((KÖZÉP(NEVE;SOR(A1:A50);1)="\")*SOR(A1:A50);2)+1;50);KÖZÉP(NEVE;MAX((KÖZÉP(NEVE;SOR(A1:A50);1)="\")*SOR(A1:A50));50);"")
Ha nem szeretnél nevet létrehozni, akkor a NEVE helyére a képletbe mindenhol beírod a CELLA("Filenév") szöveget.
A tömbképletet Ctrl+Shift+ Enter billentyűkombóval viheted be.
Az A1:A50 tartomány azért szükséges, hogy végig tudjon menni a képlet az egész néven, teljesen mindegy, hogy mi a cellák értéke, hiszen csak a sorszám kell nekünk. Ha hosszabbak az elérési utaid, akkor megnövelheted a tartományt.A képlet első része "eldobja" a mappa neve előtti részt, a helyette függvény pedig eltünteti a mappa név utáni részt.
Az élőfej/élőlábban pedig szerintem maradhat az elérési út.
Makróval a Curdir() adja vissza elérési utat, abból a mappa egy ügyes ciklussal megkapható.
Üdv.
-
Fferi50
Topikgazda
-
poffsoft
veterán
válasz
nordican #33776 üzenetére
munkalapokról beszélsz, nem munkafüzetekről, ugye?
Jó a képleted (&=összefűz), csak még stringként be kell szúrnod a többit:
=Munkafüzet1!A1&", "&Munkafüzet2!B3&"."
Ha speciális karaktert (pl. sortörés) is akarsz bele:
=Munkafüzet1!A1&", "&KARAKTER(10)&Munkafüzet2!B3&"."
-
lappy
őstag
válasz
nordican #33697 üzenetére
én úgy csináltam hogy egy pár cellának kivettem a zárolást (a cellaformátum menüből éred el)
majd kejelöltem egy cellatartományt amiben benne van ez a pár cella
ezután feltételes formázás és képlettel formázás menü(az utolsó) beírtam a képletet, kiválasztottam a színt
és ok
és tényleg kijelölte
Új hozzászólás Aktív témák
Hirdetés
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kínai és egyéb olcsó órák topikja
- Apple MacBook
- Trollok komolyan
- Okos Otthon / Smart Home
- Akciófigyelő: Ingyenes Steamen a Borderlands 2
- AliExpress tapasztalatok
- CASIO órák kedvelők topicja!
- Tápokról alaposan - mélyvíz
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Gyermek PC játékok
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Iphone 16E 128GB Fekete Bontatlan 24 Hónap Garancia
- TP-Link Archer C1200 Router eladó (1200 Mb/s Wi-Fi)
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- BESZÁMÍTÁS! Asus TUF F15 FX506HM Gamer notebook - i5 11400H 16GB DDR4 RAM 512GB SSD RTX 3060 6GB W10
- Samsung Galaxy A25 5G / 8/256 GB / Gyárifüggetlen / 12hó Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged