-
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
-
Delila_1
Topikgazda
válasz poffsoft #12832 üzenetére
Csak úgy tudod, hogy makróval végig lépkedsz a tartományon, ugyanazokat a feltételeket adod meg, amik a feltételes formázásban voltak, és megadod a formátumot.
A feltételes formázással színezett cellák színét lekérdezve az eredeti (felt. formázás nélküli) értékeket kapod, és valószínűleg igaz ez a szegélyre, fékövér karakterre, stb. beállításra is. Ki lehet próbálni.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz Wasquez #12836 üzenetére
Ugyanúgy, a SZUM függvénnyel összegezheted az órákat, mint bármilyen más számokat, de az összegző cella formátuma legyen [ó]:pp. Ezt az Egyéni kategóriában adhatod meg.
A szombatokon és vasárnapokon kívül az ünnepnapoknak is eltérő külleműeknek kell lenniük. Az idei évben 5 szombat lesz munkanap, ezeknek sem jó a hétvégi kinézet.
Sorold fel a füzetedben – bárhol – az idei ünnepnapok dátumát, és nevezd el a tartományt ünnep-nek. Egy másik tartomány az 5 szombat dátumát tartalmazza, ennek a neve mn (munkanap).
A dátumok feltételes formázását add meg a kép szerint.
http://kephost.hu/share-0D18_4F30C0FC.html
A második képlet:
=ÉS(NEM(ÜRES(A2));VAGY(HÉT.NAPJA(A2;2)=6;HÉT.NAPJA(A2;2)=7;NEM(HIBÁS(FKERES(A2;ünnep;1;0)))))[ 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.
-
Delila_1
Topikgazda
válasz luckyboi82 #12838 üzenetére
Félreértettem, azt hittem, más füzetekből csatolsz adatokat.
Sub HipAtcimez()
Dim CV As Hyperlink
For Each CV In ActiveSheet.Hyperlinks
CV.Address = Application.WorksheetFunction.Substitute(h.Address, "Z:\", "C:\")
Next
End SubA "Z:\" és a "C:\" helyett a teljes útvonalakat írd be. A cellákban a megjelenő szöveg változatlan marad, de az új útvonalról hívja be a linket.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz VásRló #12839 üzenetére
Ez egy eseménykezelő makró. Az Excel az szűrés változását nem kezeli eseményként, viszont a MOST() függvény értéke minden, a lapon történt változásra frissül. Ezt már le tudja kezelni a Worksheet_Calculate.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz poffsoft #12841 üzenetére
A naptár vezérlő teljes dátumot ad, amiből még külön ki kellene nyerned az évet. Érdemes egy egyszerű ComboBoxot bevinni. A tartományt, ami a bevihető éveket tartalmazza, elnevezheted például éveknek, és akkor a ListFillRange tulajdonsághoz ezt írhatod be.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Delila_1
Topikgazda
válasz Delila_1 #12840 üzenetére
Luckyboi82
A
CV.Address = Application.WorksheetFunction.Substitute(h.Address, "Z:\", "C:\")
sor helyett
CV.Address = Application.WorksheetFunction.Substitute(CV.Address, "Z:\", "C:\")
sort írj. A ciklusváltozót az egyik helyen nem írtam át a próbánál, elnézé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.
-
Delila_1
Topikgazda
válasz föccer #12853 üzenetére
Az első képlet: =HA(HIBÁS(G3);"-";"OK")
Nem tudom, összefügg-e a 2. kérdés az elsővel, ha igen, átalakítod.
Úgy vettem, hogy az A oszlopban vannak az esetlegesen ismétlődő adatok, a B-ben a hozzájuk tartozó számok. Ehhez jó a =HA(DARABTELI(A:A;A1)>1;B1;"") képlet.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz poffsoft #12864 üzenetére
Az évben a húsvét vasárnapját ez a makró számítja ki:
Function Húsvét(Év As Integer) As Date
Dim D As Integer
D = (((255 - 11 * (Év Mod 19)) - 21) Mod 30) + 21
Húsvét = DateSerial(Év, 3, 1) + D + (D > 48) + 6 - ((Év + Év / 4 + D + (D > 48) + 1) Mod 7)
End FunctionA feltételes formázásba bevettem a húsvét hétfőjét is. A képlet:
=VAGY(A1=Húsvét(ÉV(MA()));A1=Húsvét(ÉV(MA()))+1)Ennél egyszerűbb, ha évente felveszel két tartományt. Az egyiket nevezd el Ünnepnek, a másikat MNnak. Az első tartalmazza az év összes ünnepnapi dátumát, a másik a munkanappá lefokozott szombatokat (az idén 5-öt). A feltételes formázások:
=NEM(HIBÁS(FKERES(A1;MN;1;0))) a szomorú szombatokra, és=ÉS(NEM(ÜRES(A1));VAGY(HÉT.NAPJA(A1;2)=6;HÉT.NAPJA(A1;2)=7;NEM(HIBÁS(FKERES(A1;Ünnep;1;0)))))
a hétvégékre és ünnepnapokra.Külön is veheted a szombatot, vasárnapot, és az ünnepnapokat, ha az Excel verziód megengedi.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz poffsoft #12866 üzenetére
A .FormatConditions.Delete nem szünteti meg az eredeti formázásokat, csakis a feltételes formázással megadottakat. Kipróbáltam.
A formátum egyszerűbb másolása:
Selection.Copy
Range("A1:B5").PasteSpecial Paste:=xlPasteFormatsA Gauss funkciót is beviheted a feltételes formázásba.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz exceltanulo #12869 üzenetére
Erre gondoltál?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Cufter #12871 üzenetére
Ez a makró a Gyűjtő nevű lap A oszlopába másolja egymás alá a jelölt cellák tartalmát.
Sub másol()
usor = Sheets("Gyűjtő").Cells(Rows.Count, "A").End(xlUp).Row + 1
Selection.Copy Sheets("Gyűjtő").Cells(usor, 1)
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Cufter #12873 üzenetére
Ehhez meg kell adnod a fix cellák helyét, és azt is, melyik sorba másoljon.
A képletet vigye át, vagy a képlet eredményét?
"egy gomb megnyomására a másik lapra egymás melletti cellálkba másolja mindig a következő új sorba, tehát a lista lefelé bővüljön" Ezt már az előbb sem értettem.
[ 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.
-
Delila_1
Topikgazda
válasz Cufter #12875 üzenetére
usor = Sheets("Cégek").UsedRange.Rows.Count
uoszlop = Sheets("Cégek").UsedRange.Columns.CountEzekhez adsz 1-et. a másolás helye:
sheets("Cégek").cells(usor+1,uoszlop+1)[ 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.
-
Delila_1
Topikgazda
válasz Cufter #12875 üzenetére
Sub masol()
Range("A1:C18").Copy
Sheets("Cégek").Activate
usor = ActiveSheet.UsedRange.Rows.Count
uoszlop = ActiveSheet.UsedRange.Columns.Count
Cells(usor + 1, uoszlop + 1).Activate
Selection.PasteSpecial Paste:=xlValues
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz exceltanulo #12878 üzenetére
Igen, az INDIREKT függvény akkor mutatja az értéket, ha a hivatkozott füzet is nyitva van.
Az első leírásból számomra nem derül ki, hogy a D:\MAPPA\ könyvtáron belül az 1001.xlsx az azonos nevű (1001) könyvtárban van-e, az 1002.xlsx pedig az 1002 könyvtárban. Ha igen, akkor a függvény
=INDIREKT("'D:\MAPPA\" & A1 & "\[" & A1 & ".xlsx]Munka1'!$C$2")Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz poffsoft #12882 üzenetére
A görbe szájú ikonból nem találtam ki, hogy az :F-et takar. Ezért adtam meg egy nagyobb tartományt.
A feladatot úgy értelmeztem, hogy az egyes futtatások eredményeként a másolt tartományok lépcsőzetes elrendezésben kerüljenek a másik lapra."Már csak tényleg az hiányzik, hogy az értékeket(4db cella) ne egymás alá tegye, hanem egymás mellé. Aztán a következő futásnál már új sort töltsön fel újra egymás mellé téve a cellákat." Itt elakadtam, mert az F2:F9 tartomány semmiképp sem lehet 4 db cella.
Cufter!
Jó lenne egy kép, ami megmutatná, mit hova másoljunk az első-, és az azt követő esetekben.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Fire/SOUL/CD #12885 üzenetére
Nem nevetjük ki a kicsibbiket!
Ideje, hogy előkerültél.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz exceltanulo #12907 üzenetére
Nem biztos, hogy jól értem a feladatot.
Az A1-be tettem a Most() függvényt, a C1-be az érvényesítést, ahol az egyik kiválasztható elem a "konvertálás szöveggé". Mikor ezt a lehetőséget választod, az A1 pillanatnyi értékét a kért formában bemásolja a B2 cellába. A makrót a laphoz kell rendelned.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" And Target = "konvertálás szöveggé" Then
Range("B2") = Format(Cells(1,1), "yymmdd-hh-mm-ss")
End If
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz föccer #12909 üzenetére
=SZORZATÖSSZEG((tartomány<>"")/DARABTELI(tartomány;tartomány))
Ez megadja a "tartomány" nevű tartományban, hogy hány féle elem alkotja. Az elnevezés helyett megadhatod "A2:G100" formában is.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz DjSteve85 #12914 üzenetére
Nézd meg ezt!
Excelben készült. A C és N oszlop képletei eltérnek a közöttük lévőktől.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Zenebohoc #12924 üzenetére
A Tartalomjegyzék legyen az első lap. Ezen az első makró létrehozza a tartalomjegyzéket.
Sub Tartalom()
Dim lap%, nev$, sor%
Cells(2, 2) = "TARTALOMJEGYZÉK"
sor% = 4
For lap% = 2 To Worksheets.Count
nev$ = Worksheets(lap%).Name
Cells(sor%, 2).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & nev$ & "'!A1", TextToDisplay:=nev$ & " A1 cella"
sor% = sor% + 1
Next
Cells(2, 2).Select
End SubA következő makrót a Tartalomjegyzék laphoz rendeld, ez figyeli a G1 cella változását.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$1" Then Rejt Target.Value
End SubA 3. makró modulba kerül, mint az első.
A Tartalomjegyzék lap G1 cellájába írd a karaktert, amit ha tartalmaz a felsorolás valamelyik tagja, az annak megfelelő fül elérhető-, a többi lap rejtett lesz. Az összes lap felfedéséhez töröld a G1 tartalmát.Sub Rejt(keres)
Dim lap%, lel, sor%
If Cells(1, 7) = "" Then
For lap% = 2 To Worksheets.Count
Sheets(lap%).Visible = True
Next
Else
keres = "*" & keres & "*"
For sor% = 4 To Cells(Rows.Count, "B").End(xlUp).Row
With Cells(sor%, 2)
Set lel = .Find(keres, LookIn:=xlValues)
If Not lel Is Nothing Then
Sheets(sor% - 2).Visible = True
Else
Sheets(sor% - 2).Visible = False
End If
lel = False
End With
Next
End If
End Sub[ 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.
-
Delila_1
Topikgazda
válasz erich85T #12949 üzenetére
Sub beszur()
Dim sor%, usor%
usor% = ActiveSheet.UsedRange.Rows.Count
For sor% = usor% To 2 Step -1
If Cells(sor, 2) <> Cells(sor% - 1, 2) Then _
Rows(sor%).EntireRow.Insert
Next
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
A makró kiírja a Blabla szöveget tartalmazó cella címét, és beteszi a sor és az oszlop változókba a címnek ezt a két adatát, további felhasználás céljára.
Sub keres()
Dim ter As Range, CV As Variant, sor As Long, oszlop As Long
Set ter = Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, _
ActiveSheet.UsedRange.Columns.Count))
For Each CV In ter
If CV = "Blabla" Then
sor = CV.Row: oszlop = CV.Column
MsgBox CV.Address
Exit For
End If
Next
'A sor és oszlop változó további felhasználása
'...
'...
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Az ActiveSheet.UsedRange.Rows.Count az aktív lap utolsó kitöltött sorának a számát adja, az ActiveSheet.UsedRange.Columns.Count pedig az oszlopét.
Ebből következik, hogy a ter nevű változónak az A1 cellától az utolsó használatban lévő oszlopig és sorig tartó területet adjuk meg. Ebben a tartományban keressük a meghatározott szöveget.
Én is autodidakta módon tanulok.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Az ActiveSheet.UsedRange.Rows.Count az aktív lap utolsó kitöltött sorának a számát adja, az ActiveSheet.UsedRange.Columns.Count pedig az oszlopét.
Ebből következik, hogy a ter nevű változónak az A1 cellától az utolsó használatban lévő oszlopig és sorig tartó területet adjuk meg. Ebben a tartományban keressük a meghatározott szöveget.
Én is autodidakta módon tanulok.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Lehet, hogy félreértem, mert túl egyszerűnek tűnik a feladat.
Tehát a Munka1 lapodon vannak az adataid 12 oszlopban (A:L).
Ezeket szűrd kedved szerint, majd indítsd aSub másol()
Sheets("Munka2").Columns("A:L").Delete
Sheets("Munka1").Select
Dim ter As Range
Set ter = Range(Range("A1"), Range("L" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
ter.Copy Sheets("Munka2").Cells(1, 1)
End Submakrót. Ez a Munka2 lapra másolja az aktuális szűrésnek megfelelő adatokat, amiket már rendezhetsz pl. a dátumok szerint.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz ro_bert17 #12982 üzenetére
Igen.
Egy füzet minden lapján add meg ezt a formátumot. Azt is beállíthatod, hogy a cellák függőleges igazítása középen legyen, meg minden mást, amit még szeretnél.
A mentés másként menüpontban Munkafüzet.xlt (sablon) nevet adj neki.
Ekkor a
C:\Documents and Settings\Felhasználó\Application Data\Microsoft\Excel\XLSTART
könyvtárba menti el, és minden újonnan megnyitott füzetednek ez lesz a formátuma.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Egy kicsit egyszerűsítettem a 2. adatnál. Kevesebb változó, kevesebb számolás.
El tudod küldeni? Megnézném, mi lassítja.
A változók nevét érdemes úgy meghatározni, hogy utaljanak a tartalmukra.Sub Kitolt_1()
Dim WS As Worksheet
Dim sor%, usor%
Set WS = Sheets("Lekérdezés")
usor% = WS.UsedRange.Rows.Count
For sor% = 1 To usor% - 1
Cells(sor% + 1, 1) = WS.Cells(sor%, 1)
szla = WS.Cells(sor%, 2)
Cells(sor% + 1, 2) = Left(szla, 8) + "-" + Mid(szla, 9, 8) + "-" + Mid(szla, 17, 8)
'......hasonló 8. oszlopig
Next sor%
End Sub[ 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.
Új hozzászólás Aktív témák
- Melyik tápegységet vegyem?
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Xiaomi 11 Lite 5G NE (lisa)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- HiFi műszaki szemmel - sztereó hangrendszerek
- OLED TV topic
- Xbox Series X|S
- Formula-1
- Google Chromecast topic
- ASUS ROG PG32UCDM: OLED csúcsmonitor tesztje
- További aktív témák...
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Autómatricák a legjobb minőségben, több ezer minta! PH tagoknak 30% kedvezmény!
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen