2417
megoldást keresek erre a problémára
  • Delila1
    #1814
    Vidd be ezt a kis makrót, írd át a saját területedre, és megoldja a problémádat.

    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.
  • soskajoska
    #1813
    Kösz "kl24h". Ennél korrektebb választ keresek. 300-400 mail cím beírása esetén eléggé favágó módszer. Az is igaz, hogy eddig még rendszergazdáktól sem kaptam használhatóbb választ.
  • kl24h
    #1812
    Jobb klikk arra a cellára, amiben van az e-mail cím és megjelenő ablakocskában a Remove Hyperlink-re klikkelsz.
  • soskajoska
    #1811
    Van egy olyan problémám, hogy Excel-ben beírok egy cellába egy mail címet és akár akarom, akár nem hozzácsatol egy "maito:..." linket. Tud valaki segíteni hogyan lehet kikapcsolni?
    Ez Excel 2000, 2003, 2007 esetében is így van!
  • Delila1
    #1810
    Makrórögzítéssel checkbox létrehozásánál ezt a kódot kaptam:

    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.
  • Mikee76
    #1809
    Azt szeretném kérdezni, hogy checkbox tételeket,(v. opciókat) hogyan tudok kóddal (nem statikusan, hanem más fülön lévő táblából algoritmus által szelektált tételeket) felvinni, hozzáadni, létrehozni munkalapon.
  • Delila1
    #1808
    Az Excel beállításainál a képletek kiszámítása "automatikus" opciója elől vedd ki a pipát, akkor az F9 gyorsbillentyűvel hozhatod létre az azonnali kiszámítást. A különféle, használatban lévő verziójú Exceleknél eltérő, de hasonló helyen, a beállításoknál találod meg ezt a lehetőséget. A súgó megmondja, hogy az általad alkalmazott Excelben hol találod.
  • Mikee76
    #1807
    Azt hogyan tudom beállítani, hogy ez (vagy más) megírt függvény tényleg csak akkor fusson ha meghívódik és ne akármikor?
    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?
  • lalakov
    #1806
    Azt szeretném megkérdezni, hogy a 2010-es Excel-ben meg lehet-e változtatni az alapszíneket? Az alapból kinn lévő színek nem tetszenek, állandóan a További színekbe kell belépnem.
  • Delila1
    #1805
    Szívesen.
  • Storey
    #1804
    Köszönöm! Magyszerűen működik!
  • Delila1
    #1803


    Talán most látható lesz.
  • Delila1
    #1802


    Két új sort írtam bele, amiket piros aláhúzással jelöltem.
  • Storey
    #1801
    Ismét csak zavarlak!
    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!
  • Delila1
    #1800
    Szívesen.
  • Storey
    #1799
    Nagyon köszi minden segítséget Delila! Egy rettentően fontos dologra segítettél rájönni: EXCELBEN SOHA NE EGYESÍTS CELLÁKAT!!!!!! Az mindent összezavarhat!
    Mindent köszi!
  • Delila1
    #1798
    Még mindig nem vagyok látnok!
  • Storey
    #1797
    Szia!
    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!
  • Delila1
    #1796
    Küldd el privátban a fájlt, megnézem, mi lehet a baj.
  • Storey
    #1795
    Bekapcsoltam, és az eredmény ugyanaz.
    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!
  • Delila1
    #1794
    Bekapcsoltad az Analysis ToolPak és az Analysis ToolPak-VBA nevű 2 bővítményt?
    Office gomb | Az Excel beállításai | Bővítmények | Excel bővítmények | Ugrás.

    Mit piszkáltál?
  • Storey
    #1793
    Óriási köszönet.
    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!

  • Delila1
    #1792
    Tegyél ki gombokat, vagy rajz objektumokat a Lista lapra, és rendeld hozzájuk a makrókat.



    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
  • Storey
    #1791
    Bocsánat, teljesen igazad van!
    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!
  • Delila1
    #1790
    Ki kellene találnom, melyik oszlopban kezdődik az "adathordozó" rész, melyik sorban van, és hogy milyen nevet adtál a "FŐ" lapnak, meg a másik kettőnek? Találgathatok, de akkor át kell írnod a makrókat.
  • Storey
    #1789
    Ismét köszi a fáradozásod!
    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!
  • Delila1
    #1788
    Kineveztem az 5. sort "adathordozó"-nak. Az ebben lévő üres cellák alapján rejti az oszlopokat a Rejt makró, a Felfed pedig az összes oszlopot felfedi.

    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
  • Storey
    #1787
    2007-es Excelt használok. A következő dolgot szeretném megoldani. Van 3 különböző munkafüzetem, de van egy közös rész(ami egy sor,kezdéskor bevitt adatokkal), amiben csak az első munkalapon szeretném az adatokat beállítani(változó, hogy hány oszlopra van szükség, és ez a bizonyos sor megtalálható a másik két munkafüzetben is), és ennek alapján mutassa, vagy rejtse el a másik két munkafüzetben az oszlopokat(jelen esetben azokat, amelyek ebben a bizonyos közös sorban üresen maradnak, és ennél fogva nem kellenek). Nem ragaszkodom a makróhoz, bármilyen megoldás érdekel!
    Köszi a sok segítséget!
  • Delila1
    #1786
    Szívesen, nem zaklatsz.

    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.
  • Storey
    #1785
    Hatalmas köszönet! Így már tökéletes!
    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!
  • Delila1
    #1784
    A két lenti makrónál elég a mozgatni kívánt sorban egy cellára állni.
    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
  • Storey
    #1783
    Nagyon köszi a segítséget! De még egy kicsit nyavajognék, ha nem okoz gondot. Ez így jól működik, csak minden egyes mozgatáskor újra kell jelölni. Az lenne a jó, ha a mozgatott cella maradna az aktív. Ez azért lenne fontos, mert lehet, hogy adott esetben akár 4-5 sorral is lejjebb, vagy feljebb kell mozgatni a cellákat. Illetve ne kelljen mindig mindkét cellát kijelölni, hanem elég legyen csak a B oszlop mozgatandó cellájába kattintani, és automatikusan vigye magával a C oszlopból hozzá tartozó adatot.
    Még egyszer nagyon köszi!
  • Delila1
    #1782
    Szívesen.
  • norbre
    #1781
    mégiscsak ezzel a szöveg vagy szám dologgal volt a hiba.. köszi a segítséget
  • Delila1
    #1780
    Kijelölöd a B:C tartományban a területet, amit ki akarsz cserélin a fölötte, ill. alatta lévő területtel.
    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.
  • Storey
    #1779
    Ez már alakul, csakhogy így egyrészt minden mozgatáskor bele kell kattintani a cellába, mert nem az marad az aktív cella, másrész a mozgatás irányában lévő cellatartalom törlődik. Én azt szeretném, hogy tulajdonképpen helyet cseréljenek a cellák az adott irányban, és a mozgatott cellák maradjanak az aktívak(ez azért fontos, hogy egyesével ugyan, de akár több sorral is lehessen mozgatni le-föl).
    Azért nagyon köszönöm!
  • Delila1
    #1778
    Próbáld így:

    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
  • Storey
    #1777
    Sziasztok!
    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!
  • Delila1
    #1776
    Lehet, hogy mégis szám a keresendő érték. Add meg így:
    Function Cegkod(Projektszam As Variable, Tartomany As Range)
  • Delila1
    #1775
    Nálam ez működik.

    Function Cegkod(Projektszam As String, Tartomany As Range)
    Cegkod = Application.WorksheetFunction.VLookup(Projektszam, Tartomany, 1, False)
    End Function