-
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
Írd le pontosabban, mit szeretnél elérni. 1 füzet több lapjáról van szó? Mit fed az első két cella? A1 és A2, vagy A1 és B1? Mi az átkerülés? Másolat, vagy áthelyezé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
"...vagy nem is tudom."
Döntened kellene. A színezés feltételes formátummal történik? Mert akkor a színlekérdezés a cellák eredeti színének a kódját adja. Most sem adtad meg, melyik 2 celláról van 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
A makró akkor másolja át a 2 cellát, ha mindegyiknek adtál háttérszínt.
Tegyél ki hozzá egy gombot, vagy adj bill. kombinációt.Sub masol()
If Range("A2").Interior.ColorIndex <> -4142 And Range("B2").Interior.ColorIndex <> -4142 Then
Range("A2:B2").Copy Sheets(2).Range("A" & Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1)
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
Tom Teke és gyga
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
Ha lépésenként futtatod, rájössz, hogy minden sort másol, de felülírja az előzőt.
Csv-kel nem szoktam dolgozni. Beteszek egy rövid makrót, amit majd átalakítasz. Ez az A oszlop adatait másolja át egyenként a B-be, és hozzáfűzi, hogy 1, 2, vagy 3. adatsorról van szó.
For sor = 1 To 9 Step 3
Cells(sor, 2) = Cells(sor, 1) & " 1"
Cells(sor + 1, 2) = Cells(sor + 1, 1) & " 2"
Cells(sor + 2, 2) = Cells(sor + 2, 1) & " 3"
Next[ 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
Nem jött össze a képfeltöltés.
Add meg a címed privátban, akkor elküldöm. A kép a PC Wordl 2006. márciusi számából Weisz Tamás cikkét tartalmazza. Ebben leírja a cellák méret szerinti beállítását két makróval, és UserFormmal.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
Automatikusra kell állítanod a számítást. 2007-ben Az Excel beállításai | Képletek | Számítási beállítások az útvonal.
2003-nál Eszközök | Beállítások | Számolás fü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 csferke #20903 üzenetére
Jelöld ki az A2:C22 területet. Ctrl+r-re táblázattá alakítja a tartományt (vagy beszúrás, táblázat).
Az újonnan bevitt sorokat innen kezdve hozzáadja a diagramodhoz.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 ThisWorkbook-ba tedd
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim v$
Cancel = True
v$ = InputBox("Adj nevet kiterjesztéssel a más néven történő mentéshez!")
ActiveWorkbook.SaveAs v$
ActiveWorkbook.Close
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 Prosectura2 #20921 üzenetére
Gondolom, a D oszlopba írtad az összegzéseket, a szum(C8:C14) a D14-es cellában van.
Jelöld ki a D8:D14 tartományt, és ezt húzd le. Így az üres cellákat is másolod, a képletek jó helyre kerülnek.Nem lesznek tapsikoló figurák, ha a Konvertálatlan opciót alkalmazod.
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 Prosectura2 #20924 üzenetére
Ismétlés, képpel.
Beírod a két képletet (akár másik lapra, a megfelelő hivatkozással) a D7 és D14 cellába. Kijelölöd a sárga tartományt, és a D14 cella jobb alsó sarkában a kis fekete négyzetet lehúzod a többi adatod mellé. Jó képletet ad majd a D21, D28, stb. cellákba.
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 Prosectura2 #20926 üzenetére
A D14 cella képlete egy relatív hivatkozás. Azt tartalmazza, hogy a függvény adja össze a tőle 1 oszloppal balra lévő adatokat a 6 sorral fentebb kezdődő sortól a cellával azonos sorig.
Ha csak ezt a képletet másolod a D21-be, ott a 6 sorral fentebbi a 15. sor, a vele azonos a 21, C15:C21 lesz a képlet hivatkozása. Megtehetnéd, hogy mindig csak az összegző képletet másolnád a megfelelő sorokba, akkor is ezt az eredményt kapnád.
Egyszerűbb azonban az üres, képleteket nem tartalmazó cellákkal együtt másolni. Az egyszerűségen kívül biztosabb is a helyes eredmény. Az üres cellák biztosítják a megfelelő távolságot, nem kerül véletlenül feljebb, vagy lejjebb 1-1 képlet, ami ráadásul átfedést, hamis értékeket eredményezne az összegzésekné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 LordVader80 #20928 üzenetére
Az FKERES függvényt alkalmazd.
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 LordVader80 #20931 ü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 m.zmrzlina #20936 üzenetére
Teljesen más ötlet.
Egy oszlopba bevinném az időpontokat, a címsorba pedig a dátumokat (nn formátummal, hogy kevés helyet foglaljanak). Lehet fordítva is az idő és dátum elhelyezése. A metszéspontokba 1-es értéket adnék, mikor égett a villany, és semmit, ha nem.
Egy feltételes formázással hátteret adnék az 1-et tartalmazó celláknak, azonos karakterszínnel. Diagram kilőve.A dátumok helyett lehetnek a munkahelyek, vagy amire szükséged van.
[ 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 m.zmrzlina #20938 üzenetére
Igen.
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 #20940 üzenetére
Sok szerencsé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 #02644736 #20949 üzenetére
Az A oszlop formátuma legyen Normál"/XY", a K-é pedig szöveg.
A makróban az A oszlopba írandó adatot számként mentem (TextBox1*1), a többit szövegként. A textbox, mint a neve is mutatja, szöveges értéket ad alapból. Ha számként akarod menteni valamelyik adatot, szoroznod kell a felíráskor 1-gyel.
10 db textboxba viszem be az adatokat a formon (A:J oszlop), a K oszlop adatát a TextBox1 értéke adja.
Private Sub CommandButton1_Click()
Dim sor As Long, usor As Long, kezd As Long, WF As WorksheetFunction, f As Boolean
Set WF = Application.WorksheetFunction
f = False
Sheets("Munka1").Activate
If WF.CountIf(Columns(1), TextBox1 * 1) > 0 Then
kezd = WF.Match(TextBox1 * 1, Columns(1), 0) + 1
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = kezd To usor
Cells(sor, "A") = Cells(sor, "A") + 1
Cells(sor, "K") = Cells(sor, "A") & "/" & Year(Date)
Next
f = True
Else
usor = Range("A" & Rows.Count).End(xlUp).Row + 1
End If
'Adatbevitel a Munka1 lapra
If f Then
usor = usor + 1
Range("A" & usor) = TextBox1 * 1 + 1
Else
Range("A" & usor) = TextBox1 * 1
End If
Range("B" & usor) = TextBox2
Range("C" & usor) = TextBox3
Range("D" & usor) = TextBox4
Range("E" & usor) = TextBox5
Range("F" & usor) = TextBox6
Range("G" & usor) = TextBox7
Range("H" & usor) = TextBox8
Range("I" & usor) = TextBox9
Range("J" & usor) = TextBox10
If f Then
Range("K" & usor) = TextBox1 + 1 & "/" & Year(Date)
Else
Range("K" & usor) = TextBox1 & "/" & Year(Date)
End If
'Rendezés
usor = Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A" & usor), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Munka1").Sort
.SetRange Range("A1:K" & usor)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End SubSzerk.: beteheted a végére a textboxok kiürítését.
[ 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 #02644736 #20954 üzenetére
Ez változik:
If f Then
Range("K" & usor) = TextBox11 + 1 & "/" & Year(Date)
Else
Range("K" & usor) = TextBox11 & "/" & Year(Date)
End IfNem írtad, mihez kell a range. Feltételezem, hogy a formon lévő listboxhoz, vagy comboboxhoz, vagy egyéb, listát tartalmazó objektumhoz.
Private Sub UserForm_Activate()
Dim usor As Long
usor = Sheets("Munka1").Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.List = Sheets("Munka1").Range("A2:A" & usor).Value
End SubA ComboBox1.List = Sheets("Munka1").Range("A2:A" & usor).Value sort bemásolhatod az előbbi makró végére is, hogy a lapra felírás után frissüljön a lista.
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 SkizoFreen #20953 üzenetére
A törlés, és az oszlopszélesség egységben írd át az oszlopazonosítókat a saját igényeidnek megfelelőre.
Sub Atszerkesztes()
'Áthelyezés
Columns("G:H").Cut
Columns("D:E").Insert Shift:=xlToRight
'Törlés
Range("M:M,Q:Q,T:T").Delete Shift:=xlToLeft
'Oszlopszélesség
Columns("A:R").EntireColumn.AutoFit
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 első üres oszlop 2. sorába (címsort feltételezve) beviszed a =DARABTELI(B$2:B2;B2) képletet, és lemásolod a többi sorod mellé. Ügyelj a $ jelre.
Ez az oszlop megmutatja soronként, hogy a cikkszámod hányadik alkalommal szerepel a B oszlopban. A cikkszámos oszlopot szűröd, és megkapod az eredményt.
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
Nézd meg a "szövegből oszlopok" funkciót, az segít szétszedni az adatokat.
Mikor szétszedted oszlopokba a cella értékeit, összeállítasz egy segédtáblát, ami az egyes betűkhöz tartozó számértékeket tartalmazza. A képen ez nálam az M1:N5 tartomány.
A számokat a G2 cellába írt, és a mellette-, alatta lévőkbe másolt képlet állítja elő.
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
Nagyon jó, hogy a kérdezéstől eljutottál a válaszig. Az más dolog, hogy létezik az Excelben erre egy beépített funkció.
Meglehet, hogy az én válaszom is túl bonyolult, csak nem ismerek egyszerűbb megoldá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 ccs2929 #21026 üzenetére
Nézd meg a 21024-es választ, abban találsz az FKERES függvényre idevágó példát.
Nálad a segédtábla első oszlopa a mintád szerint a számokat tartalmazza 1-től 12-ig, a második pedig a számokhoz tartozó betűt. Mindegyik szám mellé be kell írnod a betűt, ne összevont cellákban egyszerre add meg, az hibát okoz.
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 Geryson #21031 üzenetére
Szia!
A lapokat elrejtheted. Ha úgy gondolod, hogy ezt könnyen felfedik, a VBA szerkesztőben szigorúbb tiltást adhatsz. Lapfülön jobb klikk, Kód megjelenítése. Ha nem látszik a Properties menü bal oldalon, akkor a View menüből megnyitod.
Az utolsó paraméter a lap láthatósága (visible), ezt weryhidden-re állítva a lap a füzetből nem, csak a VB szerkesztőből tehető ismét láthatóvá.
Másik kérdés:
A HOL.VAN függvény megadja az utolsó kitöltött sorod számát, ha olyan nagy számot kerestetsz vele, amilyen biztosan nincs az adataid között.Vegyük, hogy az árfolyamok a B oszlopban vannak, a képlet:
HOL.VAN(10000;B:B;1)Ezt beágyazzuk az INDIREKT függvénybe, ami megadja a tartományt az átlag kiszámításához:
INDIREKT("B2:B" & HOL.VAN(10000;B:B;1))Utolsó lépésként jön az ÁTLAG függvénybe történő beágyazás:
=ÁTLAG(INDIREKT("B2:B" & HOL.VAN(10000;B:B;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 soundsthu #21053 üzenetére
"alma" helyett a kritérium "*alma*" legyen. A csillag helyettesítő karakter, ami azt jelöli, hogy az alma szó előtti és mögötti akárhány karaktert ne vegye figyelembe a képlet. Ez számol azokkal a cellákkal, amiknek tartalma például az "alma", "almafa", "kivirágzott az almafa", stb.
Másik helyettesítő karakter a kérdőjel, ez csak 1 karaktert helyettesít. A "b?mba" kritérium megtalálja a bomba, és a bamba szó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 alfa20 #21061 üzenetére
A comboboxod ListFillRange tulajdonságánál megadod a címet, ahonnan betölti a két értéket:
Munka1!D2:D3A change esemény:
Private Sub ComboBox1_Change()
If ComboBox1 = "alma" Then
Range("B2:B3") = "gyümölcs"
Else
Range("B2:B3") = "zöldség"
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 alfa20 #21069 üzenetére
Gondolom, a label nem tartalmazza a kiterjesztést.
A makró további részét egyszerűsítheted. A select utasítások nem szükségesek, és lassítják a futást.
Dim oszlop As Long
Rows("1:2").Delete shift:=xlUp
Rows("1:1").NumberFormat = "@"
For oszlop = 1 To 27: Cells(1, oszlop) = oszlop & "": NextProgramozó: 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 dellfanboy #21074 üzenetére
Mivel a makrót a personalba tetted, igen, normális. No de miért zárod be a personalt?
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 dellfanboy #21077 üzenetére
Nyitva kell lennie. Az Excelből nem is látod, mert rejtett füzetként jelenik meg, csakis a VBE-ben látszik.
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 Salex1 #21066 üzenetére
Úgy látom, túlbonyolítottad, és elég rosszul látszik a makró. Ha a bemásolás után kijelölöd a szöveget, majd a Programkód gombra kattintasz, látható lesz, és a tagolások sem tűnnek el, átláthatóbb lesz, jobban lehet értelmezni.
Nagyjából azt vettem ki, hogy a Rendszerek lapról azoknak a soroknak bizonyos értékeit kell átmásolnod a Munkák lap első üres sorába, ahol az O oszlopban 1-es érték van. Ezután az O oszlop kérdéses sorába "Áttéve" szöveget íratsz, a G-be "Terv"-et.
Add meg, melyik oszlopok értékeit kell másolni a Munkák lap melyik oszlopaiba (pl. a H-t a H-ba).
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 Salex1 #21084 üzenetére
Igen, a gomb click eseményébe csak ennyit kell írnod: auto_open.
A lenti makró működik gombról.Sub masol()
Dim sor As Long, usorR As Long, usorM As Long
Dim WSR As Worksheet, WSM As Worksheet
Set WSR = Sheets("Rendszerek")
Set WSM = Sheets("Munkák")
usorR = WSR.Range("A" & Rows.Count).End(xlUp).Row
usorM = WSM.Range("B" & Rows.Count).End(xlUp).Row + 1
For sor = 2 To usorR
If WSR.Cells(sor, "O") = 1 Then
WSM.Cells(usorM, "B") = WSR.Cells(sor, "C").Value
WSM.Cells(usorM, "H") = WSR.Cells(sor, "H").Value
WSM.Cells(usorM, "G") = "Terv"
WSR.Cells(sor, "O") = "áttéve"
usorM = usorM + 1
End If
Next
WSM.Range("A1").AutoFilter Field:=7, Criteria1:="<>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 csongi #21087 üzenetére
Az aktuális füzetedben – amelyikben futtatod – a nevek végére ír egy alsó kötjelet.
Sub nevadas()
Dim x As Integer
For x = 1 To Names.Count
Names(x).Name = Names(x).Name & "_"
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.
Új hozzászólás Aktív témák
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Canva Pro előfizetés - 1 éves
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen