Excel kérdés
Jelentkezz be a hozzászóláshoz.
Sub NukuLink()
For sor = 2 To 500 '***
Cells(sor, "C").Hyperlinks.Delete '***
Next
End Sub
A két, csillaggal jelölt sorban kell módosítanod. Ez a makró a C oszlop 2:500 sorában alakítja szöveggé a címeket.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Ez Excel 2000, 2003, 2007 esetében is így van!
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=56.25, Top:=23.25, Width:=79.5, Height:= _
18).Select
Ezt beteheted egy feltételbe.
Nem vagyok biztos benne, hogy ezt kérdezted, nem egészen világos nekem a leírásod.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Pl, amikor egy másik rendszerbõl exportálok Excelbe egy listát VB ablak fejlécén látom, hogy 'running', mikor semmi dolga az adott munkafüzettel. Vagy amikor egy másik makró is fut az adott munkafüzeten, de semmi köze az adott függvényhez, stb.
Private/Public/Static (vagy az, hogy Sub (procedura) alá/közé teszem) milyen módon befolyásolhatja ezt, hogy mikor fut egy function?
Talán most látható lesz.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Két új sort írtam bele, amiket piros aláhúzással jelöltem.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A le-föl mozgatáskor hogyan tudom megadni, hogy mondjuk a 6. sornál ne mozdítsa feljebb, és mondjuk az 50. sornál ne engedje lejjebb?
Elõre is köszi!
Mindent köszi!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Alakul a dolog! Természetesen ismét csak én voltam a ludas a dologban. Volt egy rejtett munkalap is az elsõ elõtt(amire egyébként szükség van), és ezért nem mûködött! Amikor ezt beállítottam, a hiba megoldódott. De továbbra sem tökéletes, mert azon a két lapon, ahol el szeretném rejteni az ominózus oszlopokat, az egész táblázat eltûnik, nem csak az a néhány oszlop aminek el kellene! Próbálgattam kicsit belenyúlni(szerény tudásom alapján) de nem jártam sikerrel.
Itt tartok most!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A piszkálásról: csak eegy sorral bõvítettem az együtt mozgó sorokat, valamint egy oszloppal el kellett tolni az egészet. Természetesen ezek semmiségnek nevezhetõek. A munka teljes egészét te végezted, amiéer hála és köszönet!
Office gomb | Az Excel beállításai | Bõvítmények | Excel bõvítmények | Ugrás.
Mit piszkáltál?
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A sorok mozgatása kicsi "belepiszkálás" után csodálatosan mûködik. De az oszlopok elrejtését nem tudom életre kelteni. Indítás után a következõ hibaüzenet ugrik fel: RUN-Time error'1004' Worksheet osztály select metódusa hibás. Próbálkoztam itt is a dolgot kicsit pofozgatni(szerény tudásom alapján), de nem sikerült semmit kezdeni vele.
Ismét csak nagy köszönet!
Sub Fel()
Dim sor As Integer, lap%, WS As Worksheet, B, C
Application.DisplayAlerts = False
sor = Selection.Row
B = Cells(sor, "B"): C = Cells(sor, "C")
For lap% = 1 To 3
Set WS = Sheets(lap%)
WS.Range("B" & sor) = WS.Range("B" & sor - 1)
WS.Range("C" & sor) = WS.Range("C" & sor - 1)
WS.Range("B" & sor - 1) = B
WS.Range("C" & sor - 1) = C
Next
Application.DisplayAlerts = True
Sheets("Lista").Range("B" & sor - 1).Select
End Sub
Sub Le()
Dim sor As Integer, lap%, WS As Worksheet, B, C
Application.DisplayAlerts = False
sor = Selection.Row
B = Cells(sor, "B"): C = Cells(sor, "C")
For lap% = 1 To 3
Set WS = Sheets(lap%)
WS.Range("B" & sor) = WS.Range("B" & sor + 1)
WS.Range("C" & sor) = WS.Range("C" & sor + 1)
WS.Range("B" & sor + 1) = B
WS.Range("C" & sor + 1) = C
Next
Application.DisplayAlerts = True
Sheets("Lista").Range("B" & sor + 1).Select
End Sub
Sub Rejt()
Dim oszlop%, lap%
For oszlop% = 36 To 6 Step -1
If Sheets("Lista").Cells(5, oszlop%) = "" Then
For lap% = 1 To 3
Sheets(lap%).Select
Columns(oszlop%).Select
Selection.EntireColumn.Hidden = True
Cells(1).Select
Next
End If
Next
Sheets("Lista").Select
End Sub
Sub Felfed()
Dim lap%
For lap% = 1 To 3
Sheets(lap%).Select
Cells.Select
Selection.EntireColumn.Hidden = False
Cells(1).Select
Next
Sheets("Lista").Select
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Minden lapon az 5. sor F oszloptól az AJ oszlopig tartó terület alapján szeretném elrejteni az oszlopokat. Amelyik cella üresen marad, annak az oszlopa rejtõdjön el. Az elsõ munkalap neve Lista, a második Munka, a harmadik pedig Jegyzõkönyv.
Még egy gondom adódott, a sorok mozgatásával kapcsolatban. A fentebb megnevezett Munkalapok közül a Lista nevûn mozgatom az összetartozó cellákat. Ez eddig nagyszerûen mûködik is. Csakhogy a Másik két lapra ezekbõl a cellákból kerül át az adat egy egyszerû hivatkozással. A gond ott van, hogy mozgatáskor a másik két lapon ugyanaz marad a sorrend, mint volt, miközben a sorrend az fontos volna, tehát ugyanaz a sorrend kellene mint az elsõ lapon.
Ismét csak köszi!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A gondom csak az, hogy az "adathordozó" rész, az nem az A oszloptól kezdõdik, hanem "beljeb", és a kettõ között is fontos adatok vannak. A másik gond pedig az, hogy ez az úgymond "FÕ" munkalapon beállított sorokat rejti el, és én nem ezt akarom, mert az csak a "minta". A másik két munkalapon szeretném elrejteni az oszlopokat(ahol egyébként ugyanúgy megtalálható ez a bizonyos "adathordozó" sor, de ott sem az A oszloptól kezdõdik).Tehát: fõ lapon beállítom, elindítom a makrót, a másik két munkalapon pedig elrejti a minta alapján az oszlopokat.
Nagyon köszi!
Sub Rejt()
Dim oszlop%, sor%, uoszlop%
sor% = 5 'Ezt írd át annyira, ahányadik sor alapján akarsz rejteni
uoszlop% = Range("XFD" & sor%).End(xlToLeft).Column
For oszlop% = uoszlop% To 1 Step -1
If Cells(sor%, oszlop%) = "" Then Columns(oszlop%).Hidden = True
Next
End Sub
Sub Felfed()
Cells.Select
Selection.EntireColumn.Hidden = False
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Köszi a sok segítséget!
Természetesen lehet rá makrót írni, de ahhoz több dolgot kellene tudnom.
Makró nélkül is megoldhatod gombnyomásra. A súgóban keress rá az Egyéni nézetre. Különféle nézeteket állíthatsz elõ, pl. rejtett, és nem rejtett oszlopokkal. Ikont is tehetsz ki a választáshoz. Ennek a módja függ az Excel verziójától.
Ha nem jön össze, írd meg, melyik verzióval dolgozol.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Szeretnék még egy dolgot kérdezni, remélem nem viszem túlzásba. A kérdésem a következõ: Van egy munkalapom, amelynek egy bizonyos sorában lévõ adatok alapján van amikor kell, van amikor nem néhány oszlop. Ezeket a nem használt oszlopokat egyszerûen elrejtem. Van egy másik munkalapom, ahol tulajdonképpen az eredmények szerepelnek, és az a rész ami szerint el szeretném rejteni az oszlopokat ugyanaz, mint az elsõ munkalapon. Megoldható az, hogy az eredmény lapon az elsõ munkalaphoz hasonlóan automatikusan "elrejtõdjenek" a nem használt oszlopok?
Mégegyszer köszi, és bocs a sok zaklatásért!
Az ideiglenes hely a K:L oszlop.
Sub Fel_1()
Dim sor As Integer
sor = Selection.Row
Range("B" & sor & ":C" & sor).Cut Destination:=Range("K" & sor & ":L" & sor)
Range("B" & sor - 1 & ":C" & sor - 1).Cut Destination:=Range("B" & sor & ":C" & sor)
Range("K" & sor & ":L" & sor).Cut Destination:=Range("B" & sor - 1 & ":C" & sor - 1)
Range("B" & sor - 1).Select
End Sub
Sub Le_1()
Dim sor As Integer
sor = Selection.Row
Range("B" & sor & ":C" & sor).Cut Destination:=Range("K" & sor & ":L" & sor)
Range("B" & sor + 1 & ":C" & sor + 1).Cut Destination:=Range("B" & sor & ":C" & sor)
Range("K" & sor & ":L" & sor).Cut Destination:=Range("B" & sor + 1 & ":C" & sor + 1)
Range("B" & sor + 1).Select
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Még egyszer nagyon köszi!
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
A makrók a kijelölt adatokat ideiglenesen átteszik a H:I oszlopok azonos soraiba. Az eredeti területre áthúzzák a fölötte, ill. alatta lévõ adatokat, majd a megüresedett helyre bemásolják az ideiglenes terület adatait.
Sub Fel()
Dim sor As Integer, ter As Range, sorok As Integer, terM As String
Set ter = Selection
sor = Selection.Row
sorok = ter.Rows.Count
terM = "H" & sor & ":I" & sor + sorok - 1
Selection.Cut Destination:=Range(terM)
Range("B" & sor - sorok & ":C" & sor - 1).Cut Destination:=Range("B" & sor)
Range(terM).Cut Destination:=Range("B" & sor - sorok & ":C" & sor - 1)
End Sub
Sub Le()
Dim sor As Integer, ter As Range, sorok As Integer, terM As String
Set ter = Selection
sor = Selection.Row
sorok = ter.Rows.Count
terM = "H" & sor & ":I" & sor + sorok - 1
Selection.Cut Destination:=Range(terM)
Range("B" & sor + sorok & ":C" & sor + sorok + sorok - 1).Cut Destination:=Range("B" & sor)
Range(terM).Cut Destination:=Range("B" & sor + sorok & ":C" & sor + sorok + sorok - 1)
End Sub
Ha a H:I tartomány foglalt, a makróban írd át ezeket a betûket, de mindenképp egymást követõ 2 oszlop betûjelére.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Azért nagyon köszönöm!
Sub Feljebb()
Dim sor As Integer
sor = ActiveCell.Row
Range(Cells(sor, 2), Cells(sor, 3)).Cut Destination:=Range(Cells(sor - 1, 2), Cells(sor - 1, 3))
End Sub
Sub Lejjebb()
Dim sor As Integer
sor = ActiveCell.Row
Range(Cells(sor, 2), Cells(sor, 3)).Cut Destination:=Range(Cells(sor + 1, 2), Cells(sor + 1, 3))
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Két dologban kérném a segítségeteket.Írtam egy kis makrót, amely egy táblázatban mozgatja a cellák tartalmát. Csakhogy valamiért a lefelé való mozgatás nem mûködik. Az is problémám még, hogy a 4 oszlopos táblázatom, két középsõ, összetartozó celláit szeretném együtt mozgatni, de a makró viszi az elsõ oszlopot is. Errõl a makrólól lenne szó:
Sub feljebbtesz()
'
' feljebbtesz Makró
'
'
'Cells(ActiveCell.Row, 1).Select
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 3)).Select
Application.CutCopyMode = False
Selection.Cut
Range(Cells(ActiveCell.Row - 1, 1), Cells(ActiveCell.Row - 1, 3)).Select
Selection.Insert Shift:=xlDown
End Sub
Sub lejjebbtesz()
'
' feljebbtesz Makró
'
'
'Cells(ActiveCell.Row, 1).Select
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 3)).Select
Application.CutCopyMode = False
Selection.Cut
Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 3)).Select
Selection.Insert Shift:=xlDown
End Sub
Elõre is köszi a segítséget!
Function Cegkod(Projektszam As Variable, Tartomany As Range)
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Function Cegkod(Projektszam As String, Tartomany As Range)
Cegkod = Application.WorksheetFunction.VLookup(Projektszam, Tartomany, 1, False)
End Function
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
1- a keresendõ érték és a tartomány is string
2- ha a keresendõ értékhez megadom a munkalapnevet, vagy így adom meg: =Cegkod("3200";Cegek!A17:A37) .. akkor is hibát ír
3- igen, a végén a cégkód változó megkapja a kimenetet
a hiba szerintem ott lehet hogy az excelben a megadott tartományban szerepel munkalapnév :/
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
1. Nem string típusúak a keresendõ érték, vagy a tartomány tagjai,
2. Lehet, hogy a keresendõ érték sem az aktuális lapon van, és ott is meg kell adni a lapnevet,
3. A rutin végén a Cegkod változóba kell beírni a kimenetet.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
szeretnék csinálni egy saját funkciót:
Function Cegkod(Projektszam As String, Tartomany As Range)
Res = Application.WorksheetFunction.VLookup(Projektszam, Tartomany, 1, False)
stb ....
A munkalapon mondjuk így lehet megadni:
=Cegkod(O3;Cegek!A17:A37)
Az a bajom hogy ez hibát ad vissza akkor is ha létezik az adott tartományban a keresett érték, hogyha nem arra a munkalapra mutat a "Tartomany" range mint ahová a függvényt beírom.. ha nem másik worksheet van megadva hanem mondjuk ez akkor jó:
=Cegkod(O3;A17:A37)
hogy lehetne ezt megcsinálni hogy másik munkalapon is keressen?
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
Spoiler (katt a megjelenítéshez)
0;1275,75
20;787,1798496
40;399,3693986
60;112,3186468
80;-73,97240568
100;-159,5037589
120;-144,2754128
140;-28,2873674
160;188,4603773
180;505,9678212
200;924,2349645
220;1443,261807
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
van egy adatsorom:
Seb Diff
0 1275,75
20 787,1798496
40 399,3693986
60 112,3186468
80 -73,97240568
100 -159,5037589
120 -144,2754128
140 -28,2873674
160 188,4603773
180 505,9678212
200 924,2349645
220 1443,261807
Ha a 'Diff' értékeket ábrázolom egy sima vonal diagramban ('Seb' az x tengely értékmezõi), kapok egy parabolához hasonló görbét..
Erre a görbére ráhúzok egy 2. fokú polinomiális trendvonalat, szinte teljesen jól megközelíti az eredeti görbét..
Kiiratom az egyenletét, amire az excel ezt adja:
y = 50,38x^2 - 639,71x + 1865,1
Namost.. ha szépen megpróbálom behelyettesíteni az eredeti 'Seb' értékeket az x helyére, totál má értékeket kapok..
Tudja valaki ez miért van? Hogy tudnám megkapni ennek a görbének a rendes egyenletét?
köszi
** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"
Üdv, és köszönöm 😊