-
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 Mannon #13003 üzenetére
Nekem van, mert megírtam.
Sub Érték_beillesztése()
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End SubEzt a makrót a personalba vidd be (több leírást találsz itt róla a fórumon). Mikor bevitted, az Excelben Alt+F8-cal előcsalod a makrókat, kiválasztod a listából (ha van több is), és az Egyebeknél gyorsbillentyűt rendelsz hozzá.
Működés: Kijelölöd és másolod (Ctrl+C) a tartományt, oda lépsz, ahova az értéket be akarod illeszteni, és megadod a bill. kombináció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 attiati #13024 üzenetére
Ilyesmi kell hozzá:
=MAX(INDIREKT("A"&SOR()+1&":A"&SOR()+$C$1))
ahol az összegek az A oszlopban vannak, és a C1-be írod be, hány szám maximumát akarod kiszámoltatni. Pl. C1=5. A B2-ben megadott képlet az A3:A7 max értékét adja, lehúzva a képletet a B10 az A11:A15-ét.
Egyébként nem kell végighúzni a képletet. Mikor beírtad az elsőt, a cellán állva a jobb alsó sarkában lévő kis fekete négyzetre klikkelsz duplán, és az végig másolja addig, ameddig a tőle balra lévő oszlopban valamilyen adatot talál, vagy addig, ameddig a saját oszlopában van adat.
[ 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 attiati #13036 üzenetére
Újra átolvasva a kérdésedet, valóban nem kell a +1.
Nem szükséges, hogy a képlet a mellette lévő oszlopra hivatkozzon, de a balra mellette lévő oszlopban legyenek bármilyen adatok ahhoz, hogy dupla kattintásra végig lemásolódjanak a képletek. Ameddig van adat, addig lesz másolat.
Most, hogy kiveszed a +1-et, működni fog a duplaklikk, mert a másik lehetőség, hogy az aktuális oszlopban legyenek folyamatosan valamilyen adatok, képletek.
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 #13074 üzenetére
Még egyszerűbb, ha egy új oszlopba beviszel egy képletet: =A1 & "" (feltételezve, hogy az adat az A1 cellában kezdődik). Ezt lemásolod az eredeti adatok mellé, majd kijelölöd, másolod (Ctrl+C). Ráállsz az eredeti A1 cellára, Irányított beillesztés, Értékként.
A segédoszlopot ezután törölheted.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 m.zmrzlina #13082 üzenetére
H2-be: =KARAKTER(HOL.VAN(G1;A1:E1;0)+64)
G3-ba: =HA(DARABTELI(INDIREKT(H2&":"&H2);G2)>0;"van";"nincs")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 m.zmrzlina #13084 üzenetére
A HOL.VAN megadja az oszlop sorszámát, a KARAKTER átalakítja az oszlop betűjelére. Ehhez csak annyit kell tudni, hogy az A karakter ASCII értéke 65.
A KARAKTER függvény a paraméterében megadott számot alakítja betűvé.
Szerk.: szívesen.
[ 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 q13579 #13093 üzenetére
Vegyél fel egy új mezőt, ami az átlagot számolja ki. Legyen ez a G oszlopban.
A G2 cella képlete:
=HA(ÉS(A2=A1;B2=B1;C2=C1);"";SZUMHATÖBB(E:E;A:A;A2;B:B;B2;C:C;C2)/F2)
Ehhez a tartománynak rendezettnek kell lennie az A, a B majd a C oszlop szerint.
[ 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 #74459392 #13106 üzenetére
Szorozd fel 1-gyel a számokat.
Beírsz egy tetszőleges cellába egy 1-est, másolod (Ctrl+C). Kijelölöd a konvertálandó területet, jobb klikk, Irányított beillesztés, Szorzá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
Mese a megjegyzésekben.
Sub Gyomlal()
'Az A1:A10 tartomány beírása az "eredeti" tömbbe
eredeti = Application.Transpose(Range("A1:A10"))
'Egyformák törlése az A oszlopból
For sor = 10 To 1 Step -1
If Application.CountIf(Columns(1), Cells(sor, 1)) > 1 Then _
Cells(sor, 1).Delete Shift:=xlUp
Next
'A kigyomlált A1:Ax tartomány beírása az "uj" tömbbe
usor = Range("A1").End(xlDown).Row
uj = Application.Transpose(Range("A1:A" & usor))
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 lordring #13122 üzenetére
Erre egyszer azt javasolta valaki, hogy a TotalCommander-ben újra hozzá kell rendelni a kiterjesztést az Excelhez. Nálam nem jött össze, mikor ilyen hiba volt.
Régen volt, nem emlékszem, mi hozta rendbe.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 Vizes Tomi #13127 üzenetére
Épp tegnap írtam egy fórumtársunknak erre egy makrót. Két helyen javíts benne.
Az egyik
a cserélendő terület helye: ter = "$E$5: I1407",
a másik az
If IsNumeric(Mid(ertek, b%, 1)) Or Mid(ertek, b%, 1) = Chr(44) Then _ sorban a Chr(44)-ben a 44. Ott vessző volt a tizedes jel, de érdekes módon nem fogadta el
Mid(ertek, b%, 1) ="," módon. Ha nincs tizedes tört az átalakítandó számok között, az
Or Mid(ertek, b%, 1) = Chr(44) részt hagyd ki.Az ASCII értéket úgy határozhatod meg, hogy a szövegrészben kijelölöd a karaktert, másolod, és egy másik cellába beilleszted. Erre az új cellára hivatkozva a =KÓD(cella) megadja az értéket. Hosszabb karaktersorozat esetén az első karakter kódja a visszatérési érték.
Sub Szam()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim ter As String, sz As Variant, b%, uj$, ertek
ter = "$E$5:I1407"
For Each sz In Range(ter)
ertek = sz
If ertek <> "" Then
uj$ = ""
For b% = 1 To Len(sz)
If IsNumeric(Mid(ertek, b%, 1)) Or Mid(ertek, b%, 1) = Chr(44) Then _
uj$ = uj$ & Mid(ertek, b%, 1)
Next
Range(sz.Address) = uj$ * 1
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Kész"
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 plaschil #13158 üzenetére
Sub valami()
Dim sor As Long
sor = 1
Do While Cells(sor, 1) <> ""
If Rows(sor).Hidden = False Then
MsgBox sor
End If
sor = sor + 1
Loop
End SubAz Msgbox helyére jön a műveleted.
[ 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 Vizes Tomi #13188 üzenetére
Szűrd a C oszlopot úgy, hogy a színezett sorok rejtettek legyenek. A makró az F oszlopba beírja a két formázott sor közötti, E oszlopban található számokat.
Ha nem jó az F oszlop, a két, csillaggal jelölt sorban a 6-ot írd át egy üres oszlopod sorszámára.
Sub osszegek()
Dim sor As Long, ossz
ossz = 0
For sor = 2 To ActiveSheet.UsedRange.Rows.Count
If Rows(sor).Hidden = True Then
Cells(sor, 6) = 0 '******
Cells(sor - 1, 6) = ossz '******
ossz = 0
Else
ossz = ossz + Cells(sor, 5)
End If
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
válasz poffsoft #13190 üzenetére
Ezért írtam jobb ötlet híján, hogy rejtse el a formázott sorokat, arra már rá lehet kérdezni a makróban.
Szerk.: Akkor most egy nem létező kérdésre válaszoltam.
[ 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 Vizes Tomi #13192 üzenetére
Szűröd szín szerint, a Nincs kitöltés paraméterrel, ezzel elrejted a színezett sorokat. A makró futtatása után megszünteted a szűré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 Vizes Tomi #13195 üzenetére
Szívesen.
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 #13197 üzenetére
Lehetne egyszerűbben is, szűrés nélkül, ha ismerném a feltételes formázás kritériumát. A makróban ezzel lehetne operálni. Ha a C oszlop aktuális cellája megfelel ennek a feltételnek, akkor ..., ellenkező esetben ...
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 Solar_Wind #13199 üzenetére
Egy cellában megadod a címet, valahogy így: =év(ma()) & ". évi akármi"
Legyen a példában ez a C1 cella tartalma.A diagramon kijelölöd a címet, és a szerkesztőlécen megadod lapnévvel együtt a cím helyét:
=Munka1!C1Programozó: 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 Solar_Wind #13211 üzenetére
Szívesen.
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
Három lépésben tudod megcsinálni. Először irányított szűrővel az adott lapon egy új oszlopba kiszűröd az egyedi értékeket, ezt az oszlopot másolod a másik lapra, utána rendezed.
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 plaschil #13220 üzenetére
A makró az N oszlopba kigyűjti az A oszlopban lévő szövegeket, és mindegyik mellé beírja csökkenő sorrendben a hozzá tartozó top5-öt az O:S oszlopba.
Ha 100-nál több féle adatod lehet az A oszlopban, a makróban jelzett sorban írhatod át.Sub Top5()
Dim sor As Long, sor1 As Long
Dim usor As Long, usor1, cim, ertek
Dim T(100, 5) '***** Itt írd át a 100-at *****
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
usor = ActiveSheet.UsedRange.Rows.Count
Columns("A:A").Select
Range("A1:A" & usor).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"N1"), Unique:=True
usor1 = Range("N1").End(xlDown).Row
For sor1 = 2 To usor1
cim = Cells(sor1, 14)
For sor = 2 To usor
ertek = Cells(sor, 2)
If Cells(sor, 1) = cim Then
If ertek > T(sor1 - 1, 1) Then
T(sor1 - 1, 5) = T(sor1 - 1, 4)
T(sor1 - 1, 4) = T(sor1 - 1, 3)
T(sor1 - 1, 3) = T(sor1 - 1, 2)
T(sor1 - 1, 2) = T(sor1 - 1, 1)
T(sor1 - 1, 1) = ertek
GoTo Köv
End If
If ertek > T(sor1 - 1, 2) Then
T(sor1 - 1, 5) = T(sor1 - 1, 4)
T(sor1 - 1, 4) = T(sor1 - 1, 3)
T(sor1 - 1, 3) = T(sor1 - 1, 2)
T(sor1 - 1, 2) = ertek
GoTo Köv
End If
If ertek > T(sor1 - 1, 3) Then
T(sor1 - 1, 5) = T(sor1 - 1, 4)
T(sor1 - 1, 4) = T(sor1 - 1, 3)
T(sor1 - 1, 3) = T(sor1 - 1, 2)
T(sor1 - 1, 3) = ertek
GoTo Köv
End If
If ertek > T(sor1 - 1, 4) Then
T(sor1 - 1, 5) = T(sor1 - 1, 4)
T(sor1 - 1, 4) = T(sor1 - 1, 3)
T(sor1 - 1, 4) = ertek
GoTo Köv
End If
If ertek > T(sor1 - 1, 5) Then T(sor1 - 1, 5) = ertek
End If
Köv:
Next
Range("O" & sor1) = T(sor1 - 1, 1)
Range("P" & sor1) = T(sor1 - 1, 2)
Range("Q" & sor1) = T(sor1 - 1, 3)
Range("R" & sor1) = T(sor1 - 1, 4)
Range("S" & sor1) = T(sor1 - 1, 5)
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 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
válasz #74459392 #13229 üzenetére
Ha az A1 cellában van a 4 tizedesed, akkor egy üres oszlopba beírod a képletet. A képlet első paramétere a cellahivatkozás (A1 a példában), a második paraméter adja meg, hogy hány tizedesig akarod kerekíteni a számot.
Lemásolod a képletet, ameddig az adataid tartanak. Vagy az új oszlopot használod ezután, vagy kijelölöd, másolod (Ctrl+c), ráállsz az első 4 jegyű cellára, jobb klikk, Irányított beillesztés, Érték. Ezzel a művelettel az eredeti oszlopodat felülírod az új, 2 tizedest tartalmazó számokkal, a segédoszlopot törölheted.
Vigyázat! Ha az utóbbi módszert alkalmazod, és az eredeti oszlopban képletek voltak, a képletek helyére fix számok kerülnek.
Azt is megteheted, hogy ha képlet hozta létre a 4 tizedest, a teljes képletet kerekíted eleve.
=KEREKÍTÉS(képlet(...);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 kokopeti #13233 üzenetére
Hozz létre egy UserForm-ot, aminek a neve legyen pl. Bevitel. Tedd fel rá a beviteli mezőket, és a gombot, ami indítja az adatok tárolását.
A ThisWorkbook-hoz a
Private Sub Workbook_Open()
Sheets("Műszaki").Select
Bevitel.Show False
End Submakró kerüljön, ami a füzet behívásakor indítja a UserForm-ot.
A gombhoz ezt rendeld (gombon duplaklikk):
Private Sub CommandButton1_Click()
Dim WSA As Worksheet, hova As Long
Set WSA = Sheets("Adatok")
hova = WSA.Range("A65536").End(xlUp).Row + 1
WSA.Cells(hova, 1) = vevo_nev.Text
WSA.Cells(hova, 2) = vevo_cim.Text
WSA.Cells(hova, 3) = vevo_tel.Text
vevo_nev.Text = ""
vevo_cim.Text = ""
vevo_tel.Text = ""
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 kokopeti #13233 üzenetére
Tehetsz a Műszaki lapra egy gombot, ami indítja a UserFormot. A hozzá rendelt makró tartalmazza ugyanazt, amit a Workbook_Open. Ez arra jó, hogy ha bezártad a formot, a lapról is indíthatod.
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 kokopeti #13247 üzenetére
Fire megadta a választ.
Egyszerűsítheted az adatok felírását az Adatok lapra, valamint a TextBoxok tartalmának a lenullázását, ha a beszédes nevek – vevo_nev, vevo_cim – helyett kivételesen a nehezebben követhető TB1, TB2 ... TB11 nevet adsz.
Private Sub Bevisz_Click()
Dim WSA As Worksheet, hova As Long, oszlop%, nev As String
Set WSA = Sheets("Adatok")
hova = WSA.Range("A65536").End(xlUp).Row + 1
For oszlop% = 1 To 11
nev = "TB" & oszlop%
WSA.Cells(hova, oszlop) = Controls(nev).Text
Controls(nev).Text = ""
Next
End SubMegjegyzésben beírhatod a makróba, melyik TextBox milyen értéket tartalmaz.
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
Új hozzászólás Aktív témák
- Autós topik
- antikomcsi: Való Világ: A piszkos 12 - VV12 - Való Világ 12
- Milyen billentyűzetet vegyek?
- Megjött a Corsair One szériás asztali gépeinek legfrissebb generációja
- Véget is ért egyelőre a Helldivers II körül balhé
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- MIUI / HyperOS topik
- Luck Dragon: Asszociációs játék. :)
- Suzuki topik
- Android szakmai topik
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen