-
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
Ti kapjátok rendesen az értesítést az új hozzászólásokról?
Én most kaptam meg a 9495-ösről, ami 12:07-kor íródott, és nálam 12:45-ös idővel érkezett, 16:18-kor.
[ 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 #9504 üzenetére
3 perce kaptam meg egy régebbi, 11:26-kor született hozzászólást, az idő 13:10 a levelezőmben – ami rendesen működik. A Te hozzászólásodról még nem kaptam értesítést.
Hol jelezzek, kinek?[ 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 #9504 üzenetére
Kiderült, hogy a szolgáltatómnál van a hiba. 17:50-kor megkaptam egy e-mailt, amit 9:22-kor küldtek nekem. Lassanként befutnak a hozzászólásokról az értesítések, az előbb kaptam meg a 9493-asról, ami 11:53-kor született. A Tiéd még várat magára.
Köszi, hogy felajánlottad a segítséget.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 #9514 üzenetére
Vegyük, hogy az =ha(k3="";"";k3*j3) képleted az F1 cellában van. Azt írod, hogy erre az F1-re hivatkozol egy másik cellában.
A képletet tartalmazó cellára így lehet hibaértéket kiküszöbölő módon hivatkozni:
=ha(hossz(f1)>0;f1*10;"")A képletet 0 hosszúságúnak értelmezi az Excel, ezért csak akkor végzi el a megadott műveletet, ha érték kerül a cellá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
Ezt másképp is be lehet állítani, mint ahogy szinte minden feladatra több megoldás létezik.
2003-asnál az Eszközök - Megjelenítés fül, Zéró mint érték jelölővel.
2007-nél Office gomb - Az Excel beállításai - Speciális - Nulla megjelenítése a nulla értékű cellákban.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
Mit is kellene nyomtatni? Elláttam magyarázatokkal a makródat.
Sub nyomtat()
'A névsor lap A2 cellájának az értékét teszi a b változóba
b = Worksheets("névsor").Cells(2, 1).Value
b = b + 1 'növeli a b értékét
For a = 2 To b 'A névsor lapon a 2. sortól megy a ciklus b-ig
Sheets("névsor").Select 'bár a névsor lap az aktív, a ciklusban mindig
'kijelöli ugyanezt a lapot (?!)
Range(Cells(a, 1), Cells(a, 1)).Select 'rááll az a-adik cellára az A oszlopban
Selection.Copy 'másolja ezt a cellát
Sheets("Sima").Select 'átmegy a Sima lapra
Range("C3").Select 'beilleszti az előbb másoltat mindig ugyanoda, C3-ba
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False 'kijelölés megszüntetése
'nyomtatja a Sima lapról az előzően nyomtatási területként kijelölt tartományt
'itt az a szám látszik, amit a ciklusban utoljára a C3-ba írattál
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next a
MsgBox "A nyomtatás kész, ügyes vagy!!!"
Sheets("Sima").Select
Range("C3").Select
Selection.ClearContents
Range("A2").Select
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
Akkor minek átmásolni a Sima lapra? A névsor lapról is kinyomtathatod egyenként.
Ez megmagyarázza, miért tetted a print utasítást a ciklusba.Sub nyomtat()
Sheets("névsor").Select
b = Cells(2, 1) + 1
For a = 2 To b
Range(Cells(a, 1), Cells(a, 2)).Select
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next a
Sheets("Sima").Select
MsgBox "A nyomtatás kész, ügyes vagy!!!"
Range("A2").Select
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 m.zmrzlina #9533 üzenetére
Sub hiba()
If Selection.Rows.Count > 100 Or Selection.Columns.Count > 1 Then
MsgBox Selection.Rows.Count & " sort, és" & Chr(10) & _
Selection.Columns.Count & " oszopot jelöltél ki" & Chr(10) & "ejnye-bejnye"
End If
End SubKülön is veheted a túl sok sorra, és oszlopra vonatkozó figyelmeztetést.
[ 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 #9535 üzenetére
A paste elé tedd, exit sub-bal.
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 #9537 üzenetére
Valahol biztosan lekérdezed a felhasználó kijelölését (selection.address), mert azt adod meg nyomtatási területnek. Az után tedd 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 m.zmrzlina #9539 üzenetére
A Selection.Address string formában megadja a kijelölt területet, pl. "$A$:$C$50"
Ezt felhasználhatod a nyomtatási terület megadásához, ha a hibakeresésen átment.
ActiveSheet.PageSetup.PrintArea = Selection.AddressA cells(4,2).Select után a
Selection.CurrentRegion.Select
sor kijelöli a cellával egybefüggő területet. Ezt beviheted egy változóba.
ter=Selection.AddressBár ez nem illik a makródra, mert valószínűleg több oszlopnyi adatod függ egybe.
Ha az B4 alatt lévő adatok kellenek a nyomtatáshoz, célszerű a kijelölése után a
Range(Selection, Selection.End(xlDown)).Select -vel kijelölni az oszlopot.[ 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 #9541 üzenetére
Működik ez akkor is ha a kijelölt terület egy istentudjaholvan gépen futó excel97-ben van amit Remote Desktop-pal érek el?
Távoli gépet nem tudok produkálni, próbáld ki!
Átírtam a makrót úgy, hogy csak 1 oszlop, és max 100 sor kijelölésekor másoljon az F1-be.
Sub hiba()
If Selection.Rows.Count > 100 Or Selection.Columns.Count > 1 Then
MsgBox Selection.Rows.Count & " sort, és" & Chr(10) & _
Selection.Columns.Count & " oszopot jelöltél ki" & Chr(10) & "ejnye-bejnye"
Exit Sub
Else
Selection.Copy
Cells(1, 6).Select
ActiveSheet.Paste
Application.CutCopyMode = False
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
Az Else ág rövidebben:
Selection.Copy Range("F1")
Application.CutCopyMode = FalseProgramozó: 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 #9544 ü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_AND_Ms #9546 üzenetére
Nálam simán megtalálja mindegyiket. Lehet, hogy azért, mert Fire egyik régebbi tanácsát megfogadtam, és a Windows addigi beállításán módosítottam.
Vezérlőpult - Területi és nyelvi beállítások - Területi beállítások fül - Testreszabás gombon katt - Rendezés fül/Lenyílóból a Technikai lehetőséget választottam, végig okéztam.
Természetesen az alapértelmezett területi beállítás Magyar kell hogy legyen.
Ez a beállítás megoldja a magyar ABC szerinti rendezést 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 Charlie Gordon #9552 üzenetére
Kissé zavaros. Tegyél be egy képet róla.
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 Charlie Gordon #9554 üzenetére
Más felfogásban, általánosítva a sorok és oszlopok számát:
Sub Adatosszesites()
Dim w2 As Worksheet
Dim sor As Integer, sor_1 As Integer
Dim oszlop As Integer, oszlop_1 As Integer
Dim datumok As Integer, nevek As Integer
Set w2 = Worksheets(2)
Sheets(1).Select
datumok = ActiveSheet.UsedRange.Columns.Count
sor_1 = 1: oszlop_1 = 2
nevek = Range("A2").End(xlDown).Row
For sor = 2 To nevek
w2.Cells(sor_1, 1) = Cells(sor, 1)
For oszlop = 2 To datumok Step 2
w2.Cells(sor_1, oszlop_1) = Cells(1, oszlop)
w2.Cells(sor_1, oszlop_1 + 1) = Cells(sor, oszlop)
w2.Cells(sor_1, oszlop_1 + 2) = Cells(sor, oszlop + 1)
oszlop_1 = oszlop_1 + 3
Next oszlop
sor_1 = sor_1 + 1
oszlop_1 = 2
Next 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
-
Delila_1
Topikgazda
Feltételezve, hogy a füzetekben, és a gyűjtő füzetben az első sorban megvan a címsor, valamint, hogy az összemásolandó adatok az A oszlopban kezdődnek:
Sub Osszadat()
Dim wbgyujto As Workbook, wb2 As Workbook
Dim utvonal As String, FN As String
Application.ScreenUpdating = False
utvonal = "E:\Temp\"
Set wbgyujto = ActiveWorkbook
FN = Dir$(utvonal & "*.*", vbDirectory)
Do While (Len(FN) > 0)
If Not (FN = "." Or FN = "..") Then
Workbooks.Open Filename:=utvonal & FN
Set wb2 = ActiveWorkbook
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Copy
wb2.Close
Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
End If
FN = Dir$()
Loop
Application.ScreenUpdating = True
Msgbox "Kész az összemásolás"
End SubAz utvonal = "E:\Temp\" sort írd át a saját útvonaladra
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
1. A1-ben van a 12.234.567.8 adat.
=HELYETTE(A1;".";"") A dupla idézőjellel azt mondod, hogy üres stringre cserélje a pontokat.2. Nem SZUM, hanem SZUMHA függvény kell. Nem kell rendezni az adatokat.
Az A oszlopban vannak a termékeid, B-ben a hozzájuk tartozó értékek.
=SZUMHA(A:A;A1;B:B)
megadja annak a terméknek a B oszlopbeli összegét, amit az A1 tartalmaz. A képletbe az A1 helyett idézőjelek között megadhatod a keresett termék 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
-
Delila_1
Topikgazda
válasz m.zmrzlina #9613 üzenetére
A szum(K4:K34) meghaladja, illetve eléri a 24 órát (1 napot), ami az Excelben az idő alapegysége.
Az összegző cella formátuma legyen [ó]:pp, és helyreáll a lelke.
[ 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 #9615 ü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 GabeeeS #9621 üzenetére
Jelöld ki az oszlopot, Adatok - Szövegből oszlopok. A varázsló első ablakában a Tagolt legyen bejelölve, Tovább, 2. oldalon határoló jelnek a Vesszőt jelöld be, Befejezés.
6 oszlopra szedi szét az adataidat, amiket a harmadiktól törölhetsz. Egy üres oszlopban az
=A1 & "-" & B1 képlet (feltéve, hogy az eredeti adatok az A oszlopban voltak) összefűzi a megmaradt két első értéket, köztük egy kötjellel.
Ezt az oszlopot jelöld ki, Ctrl+c, marad a kijelölés. Jobb klikkre bemész az Irányított beillesztésbe, Értéket, OK.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 írtad, hány oszlopod van a Munka1-en. Feltételezem, akkor kell átmásolni az adatokat, mikor minden oszlopot kitöltöttél. A makróban 3 oszlopot vettem alapul, az
If Target.Column = 3 Then
sorban ezt kell módosítanod. A makrót a laphoz rendeld.Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Dim usor As Long
usor = Sheets("Munka2").Range("A50000").End(xlUp).Row + 1
Rows(Target.Row).Copy Sheets("Munka2").Cells(usor, 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
Az egyes lapokon az adatokat foglald listába (2007-ben táblázatba, mindkét esetben a Ctrl+r bill. kombinációval teheted meg legegyszerűbben). Ilyenkor a frissítés figyeli az aktuális utolsó sorokat, nem kell átírni a tartomány(oka)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 Retekegér #9646 üzenetére
=DÁTUMÉRTÉK(JOBB(A1;4)&"."&BAL(A1;2)&"."&KÖZÉP(A1;4;2))
Ezután még meg kell adnod cellaformátumnak a kedvenc dátum formátumodat, mert egyébként 40544-et mutat a 01/01/2011-es értékné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 Retekegér #9648 üzenetére
Az angol nyelvterületről érkezett fájloknál hol a hónap, nap, év, hol a nap, hónap, év formátumot alkalmazzák. Eszerint pont a nem jót választottam, de szerencsére észnél voltál.
Amit a képleteddel előállítottál, azt szövegként értelmezi az Excel, bár dátum küllemű. Ha nem akarsz vele további műveletet végezni dátumként, akkor jó.
[ 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
Valószínűleg meg lehet oldani egyszerűbben is, míg nem jön jobb ötlet, addig ezt javaslom.
A számok az A1:A20 tartományban vannak.
A B1 képlete. =HA(A1>0;1;-1), ezt lemásolod B20-ig.
Pozitívak átlaga: =SZUMHA(B1:B20;1;A1:A20)/DARABTELI(B1:B20;1)
Negatívak átlaga: =SZUMHA(B1:B20;-1;A1:A20)/DARABTELI(B1:B20;-1)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
Szívesen. Nézd meg perfag megoldását, ahhoz nem kell segédoszlop.
A tömbképletet úgy viheted be, hogy beírod a =ÁTLAG(HA(C3:C7<0;C3:C7;HAMIS)) képletet, és Shift+Ctrl+Enterrel viszed 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 Franticfox #9668 üzenetére
Adj nevet a különböző szakaszoknak a kép szerint, és akkor névvel hivatkozhatsz rájuk, akár fkeres, vagy hol.van, vagy indirekt, stb. függvényekkel.
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 Franticfox #9670 üzenetére
Így gondoltad?
Szerk.: a keresett értéket (<int>2</int>) megadhatod egy cellában, és akkor a hol.van függvényben erre a cellára hivatkozhatsz.
Azt is megadhatod egy külön cellában, hogy hány sorral lentebbi értékre van szükséged, a +3 helyett +cellahivatkozás lehet a képletben.[ 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 Franticfox #9673 üzenetére
Az
=INDIREKT("A"&HOL.VAN("<int>3</int>";A:A;0)+3)
elején az "A" azt jelenti, hogy a keresett cella értékét az A oszlopból vegye. A sor számát a hol.van függvény adja, ami az idézőjelek közé tett <int>3</int> szöveget keresi, szintén az A oszlopban (A:A), a jelenlegi képlet szerint. A nulla az A:A után azt jelzi, hogy pontos egyezést keressen, mert lehetne közelítő találat is, a súgóban találsz erről leírást, ha érdekel.Ha a keresett szöveget pl. az E1-ben adod meg, a képlet =INDIREKT("A"&HOL.VAN(E1;A:A;0)+3)-re módosul, itt már nem kell idézőjelek közé tenni.
Az E1-be tehetsz egy érvényesítést, ami egy legördülőből teszi kiválaszthatóvá a keresett értéket.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 Franticfox #9673 üzenetére
A képen látszik, hogy a D1-be bevittem egy érvényesítést, ami a G1:G5 tartományban lévő címzések közül enged választani. Az E1-ben látszik az eredmény.
Hányas verziót haszná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
válasz Franticfox #9676 üzenetére
Hú, eltarthatott egy ideig, míg ezt megfogalmaztad, ám a kívülállónak (vagy legalábbis nekem) ez így túl tömény.
Mi lenne, ha elküldenéd a füzetet? hátha akkor jobban átlátnám.
Elég 2 db 313 soros egység, és hamis adatok is megfelelnek, csak a jellegük legyen olyan, mint az eredetié.Ja, és ha elküldöd, 2007-es formában tedd. Azt is szívből utálom, de fel van téve, és dolgozom is vele, ha kell. 2010-em nincs.
[ 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
Próbáld ezt:
Sub ugras()
Sheets("Munka1").Select
usor = Range("A1").End(xlDown).Row
For sor = 1 To usor
lapnev = Sheets("Munka1").Cells(sor, 1)
Sheets(lapnev).Select
MsgBox "Itt vagyok a(z) " & lapnev & " lapon"
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
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Promenade Publishing House Kft.
Város: Budapest