-
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 lacid90 #14457 üzenetére
Nem értem, mit is akarsz végrehajtani. A két gombhoz rendelt makróval a SumColor makrót hívod meg, de a szinek makrót akarod indítani.
A gombhoz rendelt makrókban értéket adsz két változónak (szin, le). Ezeket a pillanatnyi értékeket át kell adnod a meghívott, szinek makrónak.
Így csináld:
Private Sub CommandButton1_Click() 'v.zöld 35
szin = 35: le = 1
szinek szin, le 'a változók megadásával hívod meg a szinek makrót
End Sub
Sub szinek(szin, le)
Application.ScreenUpdating = False 'a képernyőfrissités kikapcsolása (makró gyorsítás)
Dim CV As Range, usor As Long
oszl = ActiveCell.Column
ActiveCell.Interior.ColorIndex = szin
...
...
Application.ScreenUpdating = True
ActiveCell.Offset(le).Activate
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 csferke #14459 üzenetére
Hibáztam! Az
If Cells(sor%, "C") = 0 Then Cells(sor%, "B").Delete
sort cseréld ki
If Cells(sor%, "C") = 0 Then Rows(sor%).EntireRow.Hidden = True-ra.
Ez elrejti azokat a sorokat, ahol a C oszlop – a tartozás – nulla. Bármikor felfedheted.
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 lacid90 #14465 üzenetére
Az egyes lapokon ne az ActiveX-, hanem az űrlap vezérlők közül tegyél ki gombot. Az előbbiek csakis a saját kódlapjukon szereplő makróval működnek, míg az utóbbiakhoz rendelhetsz azonos makrót, akár valamelyik modulban lévőt, nem szükséges a ThisWorkbook-ban lennie.
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 csferke #14475 üzenetére
Meg lehet oldani. A laphoz kell rendelned az alábbi makrót.
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Kimutatás1").PivotCache.Refresh
Elrejt
End SubMikor a kérdéses lapra lépsz, ennek a makrónak az első sora frissíti a kimutatást. Ha nem Kimutatás1 a neve, írd át.
A második sor meghívja az Elrejt makrót.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 #26949760 #14498 üzenetére
Rajzold meg a jelölőt az Űrlap eszköztárról. Modulba vidd be a makrót.
Sub Jelölőnégyzet1_Kattintáskor()
Dim lap As Integer
Calculate
For lap = 1 To Worksheets.Count
Sheets(lap).Select
Cells.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
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
-
Delila_1
Topikgazda
válasz lacipapi #14512 üzenetére
Ahogy pár napja már írtam, a Module1-ben lévő makró neve után beírod a változó nevét, amit át akarsz adni, annak a makrónak a neve utáni zárójelbe szintén beírod a változó nevét.
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 Rhino666 #14519 üzenetére
Az eredmény ugyanaz, így is, úgy is 3, aminek a négyzete 9.
Szerk.:
Közben rájöttem, hogy nem mindegy. A C1 képlete =A1-B1, ezt lemásolod C4-ig.
Az eredményt a {=NÉGYZETÖSSZEG(C14)} képlettel számolhatod ki. A francia zárójelek úgy adódnak hozzá a képletedhez, hogy Shift+Ctrl+Enterrel viszed be, mert ez egy tömbképlet.[ 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 Fire/SOUL/CD #14526 üzenetére
Ez sem jó. Egyesével elvégezve a kivonást más eredményt ad, mint ez.
Rhino666
Megvan!
{=NÉGYZETÖSSZEG(A1:A4-B1:B4)}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 #14532 üzenetére
Nálam 11 volt az eredmény.
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 lacipapi #14530 üzenetére
Másik módszer a másolathoz:
Sub Masolat()
Dim WB As Workbook, FN As String
Set WB = ActiveWorkbook
FN = WB.Name
Application.DisplayAlerts = False 'kérdés letiltása
WB.SaveAs Left(FN, Len(FN) - 5) & "_másolat"
Application.DisplayAlerts = True 'kérdés engedélyezése
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 Delila_1 #14536 üzenetére
Javítás:
Sub Masolat()
Dim WB As Workbook, FN As String
Set WB = ActiveWorkbook
FN = Left(WB.Name, Len(WB.Name) - 5)
Application.DisplayAlerts = False 'kérdés letiltása
If InStr(FN, "masolat") Then
WB.Save
Else
WB.SaveAs FN & "_masolat"
End If
Application.DisplayAlerts = True 'kérdés engedélyezése
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 Fire/SOUL/CD #14537 üzenetére
A kérdés feltevője nem akart C oszlopot, a {=NÉGYZETÖSSZEG(A1:A4-B1:B4)} képlet csak az első két oszlopból számol, és 11-et ad eredményü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 Fire/SOUL/CD #14540 üzenetére
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 lacipapi #14542 üzenetére
kiterj = Right(FN, Len(FN) - Application.WorksheetFunction.Search(".", FN) + 1)
Ez a pontot is beteszi a kiterj változóba. Ha nem kell, a végéről vedd ki a +1-et.
A search a szöveg.keres függvény angol változata.
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 lacipapi #14545 üzenetére
Két szövegdobozt vettem fel. Az egyik szövege "Mentve", ennek az M nevet adtam. A másiké "Másolatként mentve", ez az Mm névre hallgat.
A makróban a két Loop While kezdetű sorban állítsd az időt a saját géped sebességéhez.
Sub Masolat()
Dim WB As Workbook, FN As String, kiterj As String, kezd As Long
Set WB = ActiveWorkbook
FN = WB.Name
kiterj = Right(FN, Len(FN) - Application.WorksheetFunction.Search(".", FN) + 1)
FN = Left(FN, Len(FN) - Len(kiterj))
ActiveSheet.Shapes("Mm").Visible = False
ActiveSheet.Shapes("M").Visible = False
Application.DisplayAlerts = False
If InStr(FN & kiterj, "masolat") Then
WB.Save
ActiveSheet.Shapes("M").Visible = True
Calculate
kezd = 1
Do
kezd = kezd + 1
Loop While kezd < 10 ^ 7
ActiveSheet.Shapes("M").Visible = False
Else
WB.SaveAs FN & "_masolat" & kiterj
ActiveSheet.Shapes("Mm").Visible = True
Calculate
Do
kezd = kezd + 1
Loop While kezd < 10 ^ 7
ActiveSheet.Shapes("Mm").Visible = False
End If
Application.DisplayAlerts = True
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
-
Delila_1
Topikgazda
válasz Bocimaster #14553 üzenetére
Nem kell neki a kiterjeszté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.
-
Delila_1
Topikgazda
válasz Bocimaster #14555 üzenetére
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 csferke #14569 üzenetére
Szia!
Meg is kell jelenítenie, hiszen csak a D=0 sorokat rejti el a makró, a negatívakat nem. Kipróbáltam, bár a makrót nézve is látszott, hogy negatív D értéknél nem rejti el a sorokat.
A kimutatásban a D oszlopban vannak az értékek? Ha nem, az
If Cells(sor%, "D") = 0 Then Rows(sor%).EntireRow.Hidden = True
sorban írd át a "D"-t a megfelelő oszlop betűjelére.
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 pirit28 #14578 üzenetére
A makróban a $A$1 helyére azt a cellacímet írd, amitől megváltozik a SUM értéke, mert a makró a billentyűzetről történő bevitelt figyeli.
Ha egy tartománytól függ az A1 értéke, akkor ilyen legyen a makród:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:C20")) Is Nothing Then Then Range("C1") = Format(Now(), "hh:mm:ss")
End SubEz a B1:C20 tartományban történt változás következtében írja be a C1-be az időt. Ehelyett add meg a saját összegzendő tartományodat.
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
Írtam két függvényt rá.
1. Vegyük, hogy a szöveged az A1 cellában van. A C1-ben az =JobbVege(A1) függvény adja az eredményt.
Function JobbVege(szoveg As Range) As String
Dim b%
For b% = Len(szoveg) To 1 Step -1
If Mid(szoveg, b%, 1) = "-" Then
JobbVege = Right(szoveg, Len(szoveg) - b%)
Exit Function
End If
Next
End Function2. Nem írtad, de lehet, hogy a szöveg bal oldalát is ki kell íratnod. A B1-ben az =BalEleje(A1;C1) függvény megteszi ezt.
Function BalEleje(teljes As Range, jobb As Range) As String
BalEleje = Left(teljes, Len(teljes) - Len(jobb) - 1)
End FunctionBár az utóbbit az Excel saját függvényeivel is beírhatod.
=BAL(A1;HOSSZ(A1)-HOSSZ(C1)-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
Fejlesztőeszközök | Visual Basic, vagy ehelyett Alt+F11-re bejön a VB szerkesztő.
Bal oldalon kiválasztod a füzetedet.
Az Insert menüben beszúrsz egy modult, mire a füzeted neve alatt kapsz egy Module1 nevű modult, amit kiválasztasz. Jobb oldalon lesz egy nagyobb üres felületet, ahova bemásolod a makrót.Az Excelbe visszalépve már alkalmazhatod az új függvényedet.
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
Pedig jól mondom.
Lenyitod a szűrőt, hogy minden sor látható legyen.
Beállsz az A2 cellába. Nézet | Ablak | Panelek rögzítése | Ablaktábla rögzítése.Ezután minden szűrésnél látható lesz gördítéskor is az első sor.
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 Oliverda #14641 üzenetére
Kijelölöd a területet, másolod Ctrl+c-vel.
Ráállsz arra a cellára, ahol a vízszintes másolást akarod kezdeni. Jobb klikk, a gyorsmenüben kiválasztod az irányított beillesztést, ott pedig a transzponálást.
OK, és kész.
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 csferke #14650 üzenetére
A Mutat makró ugyanaz, mint az Elrejt, csak az
If Cells(sor%, "D") = 0 Then Rows(sor%).EntireRow.Hidden = True
sor végén a True helyett legyen False.
A frissítő makród ilyen legyen:Private Sub Worksheet_Activate()
Mutat
ActiveSheet.PivotTables("PivotNenapFakt").PivotCache.Refresh
Elrejt
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.
Új hozzászólás Aktív témák
- Otthoni hálózat és internet megosztás
- Mobilinternet
- Hegesztés topic
- Politika
- USB to S/PDif konverter a modern RIAA, elektroncsövekkel
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Sorozatok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ASUS ROG PG32UCDM: OLED csúcsmonitor tesztje
- Háztartási gépek
- További aktív témák...
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Steam kulcsok - UTALÁS/REVOLUT
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen