-
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
-
félisten
-
félisten
válasz Tier555 #8035 üzenetére
Hali!
Csak egy kérdés: Az 1. oszlopban lévő azonosítók egyediek vagy több azonos azonosító is szerepel az oszlopban? Esetleg az a.xls 1. oszlopában egyediek, míg a b.xls 1.oszlopában több is lehet belőle?
(ha így van, akkor ez adatbázis kezelésre emlékeztet, ahol pl van két tábla, az egyikben vannak a termékek egyedi azonosítóval, míg a másik táblában meg pl az eladások, ahova a termékek az egyedi azonosítójukkal kerülnek be, de többször is, hisz többször adták el őket.)
Te is valami hasonlót(az elv a lényeg, nem a konkrét példa) szeretnél kivitelezni, csak két excel munkafüzet segítségével?
(Ez a kérdés nem annyira fontos, az első kérdés a lényeg)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
válasz zsotesz81 #8040 üzenetére
Hali!
Példa: adott 2 form
UserForm1(ezen van ListBox1 és CommandButton1)
UserForm2(ezen van TextBox1 és CommandButton1)Így jeleníted meg a UserForm2-t, UserForm1-ről
Private Sub CommandButton1_Click()
UserForm2.Show vbModal
End SubÍgy adod hozzá a TextBox1 szövegét, a UserForm1-en található ListBox1-hez, majd bezárom a UserForm2-t
Private Sub CommandButton1_Click()
UserForm1.ListBox1.AddItem (TextBox1.Text)
Unload Me
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8043 üzenetére
Hali!
Már úgy érted, hogy minden induláskor előre meghatározott elemekkel induljon, vagy azt is vegye figyelembe, amit pl a Textbox-ból hozzáadtál?
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8045 üzenetére
Hali!
Az a lényeg, hogy a listboxban bekövetkezett változások mentésre kerüljenek(nem csak a hozzáadás, hisz szükség lehet a listboxból kitörölni is eleme(ke)t).
Több módszer is lehetséges pl külső munkafüzetben, külsö fájlban(pl egy TXT fájlban) vagy egy másik munkalapon(talán ez a legegyszerűbb és célszerűbb is)Melyik legyen?
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8047 üzenetére
Hali!
Az ENTER-es problémára
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
UserForm1.ListBox1.AddItem (TextBox1.Text)
Unload Me
End If
End SubFire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8049 üzenetére
Hali!
Hozz létre a munkafüzetben egy listbox1 nevű munkalapot. A kód ide fogja kimásolni minden módosításnál a ListBox1 elemeit.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 And TextBox1.Text <> "" Then
UserForm1.ListBox1.AddItem (TextBox1.Text)
Sheets("listbox1").Select
Sheets("listbox1").UsedRange.Delete
For i = 0 To UserForm1.ListBox1.ListCount - 1
Sheets("listbox1").Cells(i + 1, 1) = UserForm1.ListBox1.List(i)
Next i
Unload Me
End If
End SubFire.
UI: Házi feladat (egy kicsit meditálj rajta), hogy ez alapján hogy lehet visszaolvasni az adatokat a munkafüzet megnyitásakor. Ha nem megy, akkor persze írj nyugodtan, de egy kicsit azért törd a buksid...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz lasarus1988 #8052 üzenetére
Hali!
Na most az a gondom, hogy itt minden van, csak épp a generáló kód, vagy annak meghívását nem látom...
Vagy a Ping form valamelyik eseményéhez lenne társítva a generáló kód?
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8054 üzenetére
Hali!
Örvendetes hír, gratula!
Néha nem árt, ha magától jön rá az ember, még ha interneten is keresgéltél a megoldás után. Valószínüleg ez a tudás már megmarad...Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz mr.nagy #8056 üzenetére
Hali!
Ez a kód remek alapot kínál a megoldásra, hisz nem kell mást tenned, mint a SumColor függvényt meghívni párszor. Pl A1 : A100 ban vannak az adatok, a feltételes formázás 3 színnel dolgozik, akkor erre a három színre kifested a B1/B2/B3 cellákat, majd valamelyik cellába pl C1-be meg beírod ezt
=SumColor(B1;A1:A100)+SumColor(B2;A1:A100)+SumColor(B3;A1:A100)Fire.
UI: Nem próbáltam ki, de elméletben így működnie kell a dolognak.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz Fire/SOUL/CD #8057 üzenetére
Hali!
A SumColor függvényben ki kell cserélni ezt a sort
nResult = nResult + WorksheetFunction.Sum(rngCell)
erre
nResult = nResult + rngCell.Value
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz lasarus1988 #8059 üzenetére
Hali!
Az első sort kihagytam(Application.Run.....), mert az nálam ugye nem működhet...
Megnyitáskor simán lefut és létre is hozza a diagrammot...
A makró beállítás ugye így van belőve? [link]
Ez a legrosszabb eset, mert ha nálam sem menne, akkor lehetne keresni az okát, de így hogy műxik, nem tudok mit benne keresni...Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz lasarus1988 #8061 üzenetére
Hali!
3 dolog
1. Ez tényleg jó fejtörő, nálam is megvan a jelenség 2007 alatt... Majd még agyalok rajta aztán ha meg van a megoldás(ha meg lesz egyáltalán) akkor írok...
2. Ennyire tényleg nem kellett volna szájbarágósan leírni...
3. Ha legközelebb kódot illesztesz be, akkor a hozzászólás írásakor használd a Programkód gombot, mert így olyan csalamádé a kinézet....
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz mr.nagy #8067 üzenetére
Hali!
Igen, a problémát az okozza, hogy a feltételes formázásnál, nem a hagyományos háttérszín módosítás megy végbe. Én egy teljesen más megközelítést használtam ebben a kódban, azaz én magam írom meg a feltételeket és színezem a cellákat a feltételnek megfelelően. Ez biztosan kifogástalanul működik.
A makróban 2 dolgot kell megadni(bele is írtam hogy hol), az egyik a tartomány, amiben a kód dolgozik, a másik az eredménytábla bal felső cellája(mert hogy eredménytáblát hoz létre, amit persze módosíthatsz az igényednek megfelelően)
Ahány feltétel, annyival kell módosítani illetve az eredménytábla kiírását bővíteni/csökkenteniPrivate Sub Worksheet_Change(ByVal Target As Range)
Dim My_Range As Range
'Itt megadod, hogy milyen tartományban dolgozzon a kód
Set My_Range = Range("C9:M9")
Dim My_Dest_Range As Range
'Itt megadod a kezdőcellát, ahova az eredménytábla kerül
Set My_Dest_Range = Range("C11")
If Not Intersect(My_Range, Range(Target.Address)) Is Nothing Then
Call My_Conditions(My_Range, My_Dest_Range)
End If
End SubEz pedig Module1-ba kerül
Sub My_Conditions(My_Range As Range, Dest_Range As Range)
Col1Index = 3
Col2Index = 4
Col3Index = 5
ColEmpty = xlNone
Col1Num = 0
Col1Sum = 0
Col2Num = 0
Col2Sum = 0
Col3Num = 0
Col3Sum = 0
ColEmptyNum = 0
ColEmptySum = 0
Application.ScreenUpdating = False
For Each CurrCell In My_Range
If CurrCell.Value >= 0 And CurrCell.Value <= 5 Then
CurrCell.Interior.ColorIndex = Col1Index
Col1Num = Col1Num + 1
Col1Sum = Col1Sum + CurrCell.Value
ElseIf CurrCell.Value > 5 And CurrCell.Value <= 7 Then
CurrCell.Interior.ColorIndex = Col2Index
Col2Num = Col2Num + 1
Col2Sum = Col2Sum + CurrCell.Value
ElseIf CurrCell.Value > 7 And CurrCell.Value <= 10 Then
CurrCell.Interior.ColorIndex = Col3Index
Col3Num = Col3Num + 1
Col3Sum = Col3Sum + CurrCell.Value
Else: CurrCell.Interior.ColorIndex = xlNone
ColEmptyNum = ColEmptyNum + 1
ColEmptySum = ColEmptySum + CurrCell.Value
End If
Next CurrCell
Dest_Range.Select
ActiveCell(1, 1) = "Piros cella darabszám"
ActiveCell(1, 2) = Col1Num
ActiveCell(2, 1) = "Piros cella összeg"
ActiveCell(2, 2) = Col1Sum
ActiveCell(3, 1) = "Zöld cella darabszám"
ActiveCell(3, 2) = Col2Num
ActiveCell(4, 1) = "Zöld cella összeg"
ActiveCell(4, 2) = Col2Sum
ActiveCell(5, 1) = "Kék cella darabszám"
ActiveCell(5, 2) = Col3Num
ActiveCell(6, 1) = "Kék cella összeg"
ActiveCell(6, 2) = Col3Sum
ActiveCell(7, 1) = "Színtelen cella darabszám"
ActiveCell(7, 2) = ColEmptyNum
ActiveCell(8, 1) = "Színtelen cella összeg"
ActiveCell(8, 2) = ColEmptySum
Application.ScreenUpdating = True
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
15 napig ingyenesen használható, gondolom nincs annyi cella, amivel ennyi idő alatt ne végezne... [link]
Fire.
UI: Meg egy egyszerűbb makróval is megoldható, de most lusta vagyok...
Szerk
Mégsem vagyok ennyire lusta.
Dobj egy commandbutton-t a munkalapra, duplaklikkEz a munkalapon lévő összes cellát nagybetűsre varázsolja
Private Sub CommandButton1_Click()
UsedRange.Select
For Each mycell In Selection
mycell.Value = UCase(mycell.Value)
Next mycell
End SubHa kihagyod a UsedRange.Select sort, akkor meg azt a cellát amin állsz, vagy az általad kiválasztott cellákat.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
A1 :A5 tartalmazza a szöveges adatokat, B1 : B5 meg a számokat
=ÁTLAGHA(A1:A5;"ubul";B1:B5)
vagy akár
=SZUMHA(A1:A5;"ubul";B1:B5)/DARABTELI(A1:A5;"ubul")
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
válasz zsotesz81 #8091 üzenetére
Hali!
Ha egy példával illusztrálnád, hogy pontosan mi is van egy cellában(ami szöveget, számot stb tartalmaz), akkor könnyebb lenne segíteni és adott esetben makró sem kellene hozzá...
pl
123-abc-jenő
321-cba-őnejstb stb vagy ha változó tartalmúak, akkor meg arról pár példát dobj be...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8097 üzenetére
Hali!
Ja hogy így szám meg szöveg(amúgy jó randa minőségű lett az a kép)...
A feladat, hogy végigszaladsz a B oszlop celláin(az utolsó használtig, ez már gondolom menni fog) és egyenként megvizsgálod, hogy szám avagy nem szám, a cella tartalma. Ha az átmásolod, ha nem, akkor a következő cellát vizsgálod. Így lehet egyszerűen eldönteni hogy szám avagy nem pl:
If IsNumeric(Range("A1")) = True Then
MsgBox ("Szám")
Else: MsgBox ("Nem szám")
End IfSzerk
Közben látom javult a képminőség...Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz zsotesz81 #8100 üzenetére
Hali!
Ez egy kicsit hosszabb kód, de azért írtam így, hogy más "technikát" is láss benne, amit a későbbiekben tudsz hasznosítani esetleg...
Private Sub CommandButton1_Click()
Dim SrcSheet As Object
Dim DestSheet As Object
Dim My_Range As Range
Set SrcSheet = ThisWorkbook.Sheets("Munka1")
Set DestSheet = ThisWorkbook.Sheets("Munka2")
Set My_Range = SrcSheet.Range("A1:" & Range("A1").End(xlDown).Address)
SrcSheet.Select
My_Range.Select
DestSheet.Select
DestSheet.Range("A1").Select
For Each CurrCell In My_Range
If IsNumeric(CurrCell.Value) Then
ActiveCell = CurrCell.Value
ActiveCell.Offset(0, 1).Select
End If
Next CurrCell
SrcSheet.Select
Set My_Range = Nothing
Set SrcSheet = Nothing
Set DestSheet = Nothing
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz Delila_1 #8107 üzenetére
Hali!
Mármint a Címjegyzékre vagy a Fiókokra érted?
Csak azért kérdem, mert a héten 2 emberkének is ilyen gondja volt, mindkét esetben egy szépséges kártevőt sikerült beszerezni...
(Mindkét gépet újratelepítettem, formázás után, remélem nálad nem ez lesz a szitu.... )Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bnorci71 #8110 üzenetére
Hali!
Kijelölöd a (képed alapján) A2 : AI14 cellákat, aztán Adatok/Sorbarendezés. Itt lesz olyan hogy Rendezze és Majd, ennek segítségével megadhatsz több oszlopot rendezési szempontnak. Esetedben elsődlegesnek a pontszám oszlopát, másodlagosnak meg a gólkülönbséget.
Végül is lehet elválasztani az eredményt, de itt talán nem célszerű, hisz 2 cellából könnyebb kiszámoltatni a gólkülönbséget például...
Arra gondolok, hogy (megint csak a képed alapján) az AH2 cellába beírod ezt a képletet és lemásolod ameddig kell.=HA(B2>C2;B2-C2;C2-B2)
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz scott_free #8115 üzenetére
Hali!
Makróban Range("C1"), hagyományosan meg pl a D1 cellába =C1 & " oszlop" (bár ennek amúgy nem nagy értelme vagyon)
Cellába beírt függvények kötelezően egyenlőségjellel kell hogy kezdődjenek.Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz scott_free #8117 üzenetére
Hali!
Ja, akkor ilyen egyszerűen, D1-be írd be ezt
=HA(C1="A";A1;B1)Persze ha szükséges, még megvizsgálható, hogy ha nem A van C1-ben akkor B van-e és ha nem A vagy B, akkor lehet kiírni valami, pl
=HA(C1="A";A1;HA(C1="B";B1;"Nem A és nem B szerepel C1-ben"))F oszlopazonosítón jobb egér/Kivágás majd jobb egér azon az oszlopazonosítón ami elé szeretnéd beszúrni és Kivágott cellák beszúrása.
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
-
félisten
válasz m.zmrzlina #8156 üzenetére
Hali!
Az hogy az Excel a területi beállításoknak megfelelő karakterrel válassza el a tizedesjegyeket, az a számolási műveleteket nem befolyásolja. Teljesen mindegy hogy 2,00-t avagy 2.00-át szorzol össze 2-vel, az attól még 4 lesz, teljesen lényegtelen, hogy ezt az eredményt 4,00 avagy 4.00-ként jeleníti meg az excel.
Szóval csak ez miatt nincs szükség semmilyen beavatkozásra.
Az a példa, amit írtál az nem szám formátumú 63:37 (21.3 %) (már ha jól értem és ez egy cella tartalma) ergó nincs mit kezdeni a területi beállításokkal.
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz m.zmrzlina #8158 üzenetére
Hali!
"Csak mert nagyon nem így van."
Nem is írtam, épp azt írtam, hogy ha az egy cella tartalma, akkor az szöveg.
A cella tartalmát fel lehet dolgozni, adott esetben makró nélkül is, persze ehhez tisztában kell lenni, hogy azok a cellák milyen tartalmakat vehetnek fel. Pl példádnál maradva12:34 (12.34 %)
34:56 (34.56 %)
123:456 (56.78 %)Ebben az esetben a százalék értékek makró nélkül is kiszedhetőek és számmá alakíthatóak (százalékká is)
Ha ennél változatosabbak a cellatartalmak, nem ennyire kötöttek, akkor makró(de akkor sem biztos, csak tudni kellene, hogy mégis milyen tartalmak vannak a cellában)Szerk
Akkor inkább azt kérném, hogy pár cellatartalmat adj meg, meg azt, hogy mit szeretnél csinálni(nem képlet érdekel, hanem feladatleírás). Így látnám mi a probléma...Fire.
UI: Mellesleg ha kijelölnéd az összes ilyen cellát és egy sima csere segítségével lecserélnéd a pontot vesszőre már az is megoldást jelenthetne...
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz m.zmrzlina #8160 üzenetére
Hali!
Átírtam a már majdnem jó megoldásod, itt A1-ben van a 12:34 (12.34 %)
=HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")*1
Az egyetlen fontos dolog, hogy a százalékos értéknek minden cellában egy szóköz és % jel kövesse, tehát ahogy a példádban is van:
12:34 (12.34szóközszázalék)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz m.zmrzlina #8163 üzenetére
Hali!
Akkor itt egy képlet, aminek "mindegy" hogy milyen a területi beállítás(minden olyan területi beállítás jó, amiben pont vagy vessző a tizedeselválasztó) illetve az is, hogy a cellában ponttal avagy vesszővel elválasztva szerepel a százalék. pl 12:34 (12.34 %) avagy 12:34 (12,34 %)
(Ha valaki nem pontot vagy vesszőt használ, akkor meg #ÉRTÉK hibát dob)=HA(HIBÁS(ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")));ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);",";"."));ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")))
Fire.
UI: Makrónál az lehet "gond", hogy ott meg minden usernél engedélyezni kell a makrók futtatását az Excel beállításokban illetve a munkafüzet megnyitásakor is rákérdez(het)...
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz lackatwo #8167 üzenetére
Hali!
ThisWorkbook.Path vagy
ActiveWorkbook.PathEgy üres és még el nem mentett munkafüzetnél a PATH is üres természetesen...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz lackatwo #8171 üzenetére
Hali!
A DIR-ben teljes útvonalat is megadhatsz, pl ez kilistázza az összes fájlt abból a könyvtárból, ahonnan az excel fájl meg lett nyitva
Private Sub CommandButton1_Click()
Fname = Dir(ThisWorkbook.Path & "\*.*")
Do While Len(Fname) > 0
MsgBox (Fname)
Fname = Dir()
Loop
End SubFire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Kép perfrag linkjéről
Kód
Sub YesNoMessageBox()
Dim Answer As String
Dim MyNote As String
'Place your text here
MyNote = "Do you agree?"
'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???")
If Answer = vbNo Then
'Code for No button Press
MsgBox "You pressed NO!"
Else
'Code for Yes button Press
MsgBox "You pressed Yes!"
End If
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Pont úgy ahogy leírtad, azaz a cellába beszúrsz egy hiperhivatkozást amiben megadod(be lehet tallózni) a kívánt fájlt. Ilyenkor a cellára víve a kurzort linkként fog viselkedni(megváltozik az egérkurzor is) és ha rákattintasz, akkor megnyitja a fájlt pl egy másik XLS-t.
Remélem erre gondoltál, nem pedig pl külső hivatkozás adatforrásra...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
-
félisten
Hali!
Ezt nem teljesen értem "cellában "Link" névvel szerepel és ugye ott van alatta a hivatkozás."
Arra gondolsz hogy pl A1-ben van a (I)LINK (/I)felirat, A2-ben meg pl (I)http://www.mypage.hu/index.html(/I) ?Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz Fire/SOUL/CD #8267 üzenetére
Hali!
Na még1x, szóval ha így néz ki a dolog és abból ilyet szeretnél készíteni, akkor ez a makró megfelel. A makró kód elején add meg, hogy melyik munkalap, melyik oszlopában vannak a linkek. Itt a példában a Munka1 lap A oszlopában vannak a linkek.
Fontos
Először legyen egy másolatod a kívánt munkafüzetről, mert ha mégsem azt csinálná a makró, amit szerettél volna, akkor nem lehet használni az undo parancsot...Private Sub CommandButton1_Click()
Dim SrcSheet As Object
Dim My_Range As Range
My_Sheet = "Munka1" 'Itt megadod, hogy melyik munkalapon van az oszlop
My_Column = "A" 'Itt megadod, hogy melyik oszlopban vannak a linkek
Set SrcSheet = ThisWorkbook.Sheets(My_Sheet)
Set My_Range = SrcSheet.Range(My_Column & "1:" & Range(My_Column & "1").End(xlDown).Address)
Application.ScreenUpdating = False
SrcSheet.Select
On Error Resume Next
For Each CurrCell In My_Range
CurrCell.Hyperlinks(1).TextToDisplay = CurrCell.Hyperlinks(1).Address
Next CurrCell
Set My_Range = Nothing
Set SrcSheet = Nothing
Application.ScreenUpdating = True
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Ma nehéz a felfogásom...
Dobj be 2 képet a cellákról, az elsőt hogy most milyen, a másodikat meg hogy ilyenre, akkor meg fogom érteni és módosítom a makrót...Fire.
UI: Most is sejtem, mit szeretnél, csak a megerősítés jó lenne, mert nem akarom 5x átírni a makrót...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Hát ebből a megfogalmazásból megint 2 dologra tudok gondolni
1. "A Link szó valóban egy link, és amire mutat, azt szeretném megjeleníteni."
Tehát ha a link egy pl képre mutat, akkor a képet akarod beillszteni a cellába?2. "Tehát a tényleges linket egyik cella sem tartalmazza csak maga a "Link" hivatkozása."
Ezek szerint meg az a cél, hogy a korábbi Link feliratú hiperhivatkozás megszűnjön létezni és helyette(ugyanabban a cellában) csak sima szövegként jelenjen meg a hiperhivatkozás címe?
(pl egy kép hiperhivatkozása van ott és csak a LINK felirat látszik, ezt kell lecserélni egy sima szöveggé, amire a hiperhivatkozás hivatkozott korábban pl http://www.valami.hu/kep1.jpg)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
A példa kedvéért A1 : A100 tartományban vannak a linkek. Készítünk egy GetURL függvényt (ALT+F11/Insert menu/Module) a megjelenő ablakba illeszd be ez a kódot
Function GetURL(My_Range As Range) As String
If My_Range.Hyperlinks.Count > 0 Then
GetURL = My_Range.Hyperlinks(1).Address
Else: GetURL = My_Range
End If
End FunctionEzt követően B1 cellába meg írd be =GetURL(A1) , majd másold le ameddig szükséges.
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Nem hinném, hogy olyan súlyos feladat lenne 1 darab cella esetén, hogy azt is ugyanolyanra formázd és akkor használhatnád, amit írtál...
Delila_1 #8325
Lemaradt a TextFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz Delila_1 #8328 üzenetére
Hali!
TextBox esetén a Text és Value valóban azonos, de vannak olyan objektumok ahol nem. Ezért írtam, hogy lemaradt a Text (mert Oly "valamiért" a value-val dolgozott)
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
ListFillRange (Tartományt, vagy tartomány megnevezést is megadhatsz)
Formon ListRows (vagy makróval feltöltöd...)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz scott_free #8337 üzenetére
Hali!
Használj pl ComboBox-ot, ott megoldható, igaz ez esetben az érték "kinyeréséhez" makró kell...[link]
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
Új hozzászólás Aktív témák
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eladó Steam kulcsok kedvező áron!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs