-
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 the radish #20165 üzenetére
Range("B" & sor & ":C" & sor).Copy
Sheets("MásikLap").Range("A1").PasteSpecial Paste:=xlPasteValuesNem lesz tapsikoló figura, ha kijelölöd a képletet, és Konvertálatlan gombot nyomsz.
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 the radish #20167 üzenetére
Örülök, hogy sikerült.
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 Törpella #20181 üzenetére
Az And után legyen egy szóköz, majd az alsó kötjel. Ez jelzi a belső fordítónak, hogy az utasítás folytatódik a következő sorban.
Lehet, hogy a forma csak itt jelenik meg tördelve, és az egyes utasításokat nem tudja értelmezni a VBA. Ezen úgy segíthetsz, hogy a bővítményeknél bekapcsolod a két Analysis kezdetűt. Verziótól függ, hol találod meg ezeket. Ha így sem jönne össze, küldd el privátban a füzetet.
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
Azt nem írtad, hogy ha a B oszlopból választasz kigyűjtendő adatot, hova írja. Úgy írtam meg a makrót, hogy B választáskor a Munka2, C-nél pedig a Munka1 lapra gyűjtsön ki.
Az adatokat az Adatok lap tartalmazza. Ezt kell átírnod a makróban 2 helyen a saját lapod nevére.Sub Atmasol()
Dim WS As Worksheet, sor As Long, usor As Long, v$, WF As WorksheetFunction
Dim oszlop As Integer, sor1 As Long, f As Boolean
Application.ScreenUpdating = False
Set WF = Application.WorksheetFunction
Sheets("Adatok").Activate
v$ = Application.InputBox("B, vagy C oszlop szerint akarsz másolni?", "Oszlop választás", , , , , , 2)
If v$ = "B" Or v$ = "b" Then
Set WS = Sheets("Munka2")
oszlop = 2
v$ = Application.InputBox("Kérem a keresendő B értéket", "Adat választás", , , , , , 2)
GoTo Keres
End If
If v$ = "C" Or v$ = "c" Then
Set WS = Sheets("Munka1")
oszlop = 3
v$ = Application.InputBox("Kérem a keresendő C értéket", "Adat választás", , , , , , 2)
GoTo Keres
End If
MsgBox "B vagy C értéket írhatsz", vbOKOnly + vbExclamation
Exit Sub
Keres:
usor = WF.CountA(Columns(oszlop))
f = False
For sor = 1 To usor
If Cells(sor, oszlop) = v$ Then
If WS.Range("C6") = "" Then sor1 = 6 Else sor1 = WS.Range("C" & Rows.Count).End(xlUp).Row + 1
Cells(sor, "D").Copy WS.Cells(sor1, "C")
f = True
End If
Next
'Rendezés
WS.Activate
Range("C6").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("C6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Adatok").Activate
Application.ScreenUpdating = True
If f = False Then MsgBox "Nincs a tartományban " & v$ & " érték", vbOKOnly
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 Rihard83 #20185 üzenetére
Tegyél ki egy gombot, ahhoz rendeld a makrót. Kijelölöd a másolandó tartományt, a gombra klikkelve átmásolja a Másik lap A oszlopának aljára.
Sub Masol()
Dim sor As Long, WF As WorksheetFunction, WS As Worksheet
Set WF = Application.WorksheetFunction
Set WS = Sheets("Másik lap")
sor = WS.Application.WorksheetFunction.CountA(WS.Columns(1)) + 1
Selection.Copy WS.Range("A" & sor)
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 füzeted felépítésének ismerete nélkül nem tudom kitalálni, hol a hiba. A látnoki képességem meglehetősen fejletlen. Küldd el a fájlodat, akkor valószínűleg több re jutok.
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
A VB szerkesztőben a ThisWorkbook laphoz kell rendelned a makrót, ami a füzet bezárásakor rákérdez a törlésre.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim v$
v$ = MsgBox("Töröljem az adatokat", vbYesNo + vbQuestion)
If v$ = vbYes Then
Sheets("Adatok (2)").Range("B4:F4").Select
Range(Selection, Selection.End(xlDown)).ClearContents
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 tgumis #20207 üzenetére
Automatikusan nem tudod az egyes összetevőket cellán belül formázni. A bevitel után kijelölöd a formázandó részt a cellában, vagy a szerkesztőlécen, és a cellaformázás menüben adod meg a formátumot.
Abban az esetben, ha mindegyik cellában valamilyen szempontból azonos részt akarsz félkövérre formázni, makróval is meg lehet oldani. A szempont lehet pl. az, hogy mindenhol az n-ediktől kezdve akarsz x darab karaktert félkövérre állítani.
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 tgumis #20207 üzenetére
Egy példa arra, hogy az összefűzött adatnál hogy lehet cellán belül formázni:
Sub FormazasCellanBelul()
Dim kezd As Integer, sor As Integer
'Képletek értékké alakítása
Columns(3).Copy
Range("C1").PasteSpecial xlPasteValues
sor = 1
'Formázás
Do While Cells(sor, "C") <> ""
'Kötjel helyének megállapítása
kezd = Application.WorksheetFunction.Search("_", Cells(sor, "C"))
'Kötjel előtti rész színének beállítása
Cells(sor, "C").Characters(Start:=1, Length:=kezd - 1).Font.ColorIndex = 3
'Kötjel utáni rész félkövérre állítása
Cells(sor, "C").Characters(Start:=kezd + 1, Length:=100).Font.Bold = True
sor = sor + 1
Loop
End SubAz összefűzött adatok nálam a C oszlopban vannak. Az adatokat alsó kötjel beiktatásával fűztem össze. Ezeket csak akkor tudom cellán belül formázni, ha a képletek helyett irányított beillesztéssel átalakítom értékekké.
Az alsó kötjel előtti karakterek színét pirosra állítottam, a kötjel utániak félkövérek lesznek.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
Sokaknak van ilyen gondja, de az Excel fejlesztői úgy gondolják, hogy a felhasználók nem tudnak önállóan egy dátumformát megadni, ezért automatizálták.
Az nem jutott eszükbe (sok éven át), hogy dátumon kívül egyéb, számjegyeket és pontokat tartalmazó adatot is akarnak egyes elvetemült emberek bevinni.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 első lapra beíratod a számok mellé a DARABTELI függvénnyel, hogy a második lapon hányszor fordulnak elő ugyanazok.
=darabteli(Munka2!A:A;A2) – feltételezve, hogy a lapon van címsor, és hogy mindegyik lapon az A oszlopban vannak a számok.Ahol nullánál nagyobb értéket kapsz, az megvan a másik lapon is. Teszel egy autoszűrőt, ami a nullánál nagyobb értékekre szűr a képletet tartalmazó oszlopban, és a szűrt sorokat már másolhatod is a 3. lapra.
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 tgumis #20219 üzenetére
Ahhoz, hogy cellán belül más-más formátumot adhass az egyes összetevőknek, a képlet helyett a cella értékét kell beillesztened – vagy a képlet cellájába, vagy egy másikba, és ezt az értéket formázhatod.
Az érték beillesztése: a képletet tartalmazó cellán állsz, másolod. Ezután vagy maradsz a kijelölt cellán, vagy egy másik helyre állsz, oda, ahol az értéket létre akarod hozni. Ezen a cellán jobb klikk, irányított beillesztés, értéket. Létrejött a fix értéket, nem képletet tartalmazó cella.
A cellán állva a szerkesztőlécen kijelölöd a példa szerinti kék szót, kékre állítod a karakter színét. Kijelölöd a következő formázni kívánt részt a szerkesztőlécen, végrehajtod a formázást, Enter.
Amit írtam, az egy makró, ami automatizálja több cella azonos formázását. Ezt abban az esetben tudja végrehajtani, ha a cellák tartalma valamilyen azonos tulajdonsággal rendelkezik, például mindegyik tartalmaz egy alsó kötjelet, és az ettől balra, ill. jobbra eső résznek kell eltérő formátumot adni. A makró a képletek értékké alakításával indul.
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
Most másképpen írtad le a feladatot, mint 3 nappal ezelőtt.
Legjobb, ha képet teszel be a lapok 1-1 részletével. A makró megírásához tudni kell, melyik adatok hol szerepelnek az első két lapon, miket akarsz látni a 3. lapon, melyik esetben, és milyen sorrendben.
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 vigyori78 #20238 üzenetére
Első lépésként a gif-et szét kell szedned az alkotó rétegeire. Erre kiválóan alkalmas a PhotoShop. Az egyes rétegeket 1.gif, 2.gif, ... n.gif néven mentsd el egy könyvtárba.
A lapodra az ActiveX vezérlők közül kiteszel egy képet, aminek hivatalból Image1 lesz a neve, amit megváltoztathaszt, és akkor a makróban is át kell írnod.
Érdemes még egy gombot is kitenni, ami leállítja a "mozgás"-t. Nálam ez a gomb Kikapcs névre hallgat.
Az én gifem 10 rétegből állt, a tied jóval többől, ennek megfelelően írd át azIf x = 10 Then x = 1 Else x = x + 1
sort. Az útvonalat is át kell írnod.
A laphoz rendeld az alábbi két makrót.
Private Sub Worksheet_Activate()
Dim MyTimer As Double, x As Integer, utvonal As String
bekapcs = True
utvonal = "C:\Documents and Settings\Felhasználó\Dokumentumok\Képek\"
DoEvents
x = 1: MyTimer = Timer
Do
On Error Resume Next
ActiveSheet.Image1.Picture = LoadPicture(ThisWorkbook.Path & utvonal & x & ".Gif")
On Error GoTo 0
Do
Loop While Timer - MyTimer < 0.07
If x = 10 Then x = 1 Else x = x + 1
MyTimer = Timer
DoEvents
Loop While bekapcs = True
End SubPrivate Sub Kikapcs_Click()
bekapcs = False
End SubAz Image1 tulajdonságainál beállíthatod, hogy ne legyen keret (BorderStyle=0-fmBorderStyleNone), ne legyen kitöltés (BackStyle=fmBackStyleTransparent), és még amit akarsz.
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 Térközjelző #20240 üzenetére
Ez olyan összetett, hogy legjobb lenne elérhető helyre kitenned a füzetet.
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 Térközjelző #20252 üzenetére
Bocsi, azóta csak most vagyok net közelében.
Kérlek, küldd el a címemre, mert nem tudom letölteni.
Az már más kérdés, hogy tudok-e majd segíteni.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 Térközjelző #20252 üzenetére
Második nekifutásra sikerült letöltenem, megnézem, tudok-e kezdeni vele valamit.
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 Térközjelző #20252 üzenetére
menetrend.xls
2014-Utazas_1.xlsAz Utazás füzet elejére beszúrtam egy lapot, ahova a másik füzet 21-es lapjáról bevittem az útvonalakat, és az egyes tartományokat elneveztem. A név a tartományok alatt van, kék karakterekkel. Az alsó kötjel szükséges, mert számokat tartalmazó elnevezéseket csak így fogad el az Excel. Ezeket az elnevezett tartományokat használom a Január lap J és K oszlopában. Lesz munkád a többi útvonal felvitelével, de én is jól elbabráltam a képletekkel.
Mindenhol figyeltetni kellett, hogy páros, vagy páratlan-, Ejárat, vagy nem, továbbá indirekt függvénnyel kellett megadni, hogy a menetrend.xls füzet melyik lapjáról vegye az adatokat.A Január lapon sárga hátteret adtam a celláknak, ahova a képleteket, illetve érvényesítéseket bevittem. Az U5:AX81 tartomány képletein is egyszerűsítettem, csak azt nem "festettem be". Oda megadtam egy feltételes formázást, ami a HAMIS eredményű celláknál a karaktert fehérre váltja.
A G, H, Q és R oszlopokat elrejtheted.
A menetrend.xls-en nem változtattam, de ha már feltettem a data.hu-ra, nem törlöm.
Szerk.: Kíváncsi vagyok, ilyesmire gondoltál-e?
[ 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 Térközjelző #20252 üzenetére
Az U5:AX81 tartomány helyett az U1:V32-be bevittem a távolságokat, az S oszlop innen veszi az adatokat.
A sárga hátterű cellák képleteit és érvényesítéseit lemásolhatod a többi sorba, és a többi lapra.
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
Bocsi, de a megoldásod nem tudja azt, hogy az egyes járatok adatérvényesítésében csakis az adott járat megállóit ajánlja fel. Pl. a 273-as járatnál csupán 2 állomásnak kellene megjelennie, de itt is, mint a többinél, bejön a 9.
Az enyémen is lehet finomítani, ha lesz időm, megteszem.
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 Térközjelző #20276 üzenetére
Akkor talán nem kell ennyi tartomány minden egyes járatnak. A járat típusok azt jelölik, hogy a járat milyen megállókon áll meg, lehet elég lenne csak azokat elnevezni, és abban tárolni a rá jellemző útvonalat.
Azokat neveztem el, vagy nem értem, mit írsz.
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
A C oszlopba beírod, hogy hányszor szerepel 1-1 hrsz a B oszlopban. A C1 képlete =DARABTELI(B:B;B1), ezt másold le a többi sorba.
Adhatsz feltételes formázást a teljes tartományra, ami kiszínezi a sorokat, ahol a B oszlopban ismétlődő hrsz-ok vannak. Ennek a képlete =$C1>1, és rendelsz hozzá valami feltűnő formátumot.
Nem fontos feltételes formázást adni, az autoszűrővel egy kattintásra le tudod szűrni a sorokat, ahol a C oszlopban 1-nél nagyobb értéket találsz.
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
Így nem.
Írd be a gyűjtő lap egy tetszőleges oszlopába a lapjaid nevét egymás alá, és erre a cellára hivatkozz az INDIREKT függvénnyel. A példában a lapnevek az A oszlopban szerepelnek.
=INDIREKT(A1&"!D256")
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 torment #20297 üzenetére
Írd be a Munka2 lapra a 3 soros címet (ha még nem tetted meg), a makró elvégzi a többit.
Sub Valami()
Dim sor1 As Long, sor2 As Long, oszlop As Long
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Sheets("Munka1")
Set WS2 = Sheets("Munka2")
WS1.Activate
sor1 = 2: sor2 = 4
Do While Cells(sor1, 1) > ""
For oszlop = 1 To 5
WS2.Cells(sor2, oszlop) = Cells(sor1, oszlop)
Next
For oszlop = 6 To 9
WS2.Cells(sor2 + 1, oszlop - 4) = Cells(sor1, oszlop)
Next
For oszlop = 10 To 13
WS2.Cells(sor2 + 2, oszlop - 8) = Cells(sor1, oszlop)
Next
sor1 = sor1 + 1: sor2 = sor2 + 3
Loop
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 the radish #20305 üzenetére
=DÁTUM(ÉV(MA())-1;HÓNAP(MA());NAP(MA()))
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
- Sorozatok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ASUS ROG PG32UCDM: OLED csúcsmonitor tesztje
- Háztartási gépek
- Azonnali VGA-s kérdések órája
- Computex 2024: Itt az új ROG Ally
- Milyen TV-t vegyek?
- Autós topik látogatók beszélgetős, offolós topikja
- Mibe tegyem a megtakarításaimat?
- Hobby rádiós topik
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Megmaradt - Eredeti Humble, Choice - Steam kulcsok
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs