Hirdetés

2024. május 3., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual Basic

Hozzászólások

(#2501) Milgram1


Milgram1
aktív tag

Hali,
Középsuliban tanulok most MS Visual Basic-et és úgy gondolom hogy az ami órán van az kevés mert vettünk programozási tételeket, fájlkezelést valamennyire és kb ennyi. ezekkel több összetettebb feladtat. Engem érdekelne a dolog, ha ismerném rendesen akkor itthon alkotnék vele dolgokat csak nem tudom hol lehetne tanulni rendesen. Szóval az lenne a kérdésem hogy ismer-e valaki olyan oldalt/könyvet ahol tudok tanulgatni több dolgot hogy hasznavehető programokat írhassak magamnak.

(#2502) bucsupeti válasza Milgram1 (#2501) üzenetére


bucsupeti
senior tag

Ezek között érdemes lehet keresgélni...

Persze angolul tudni kell valamilyen szinten. Egyébként az angolt úgysem tudod megúszni, ha komolyan gondolod a programozást!

[ Szerkesztve ]

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#2503) cigam válasza sztanozs (#2500) üzenetére


cigam
félisten

Egy mezei timer-t húztam be és 1000-re tekerve másodpercenként számolom az idő múlását.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2504) sztanozs válasza cigam (#2503) üzenetére


sztanozs
veterán

De ugye a kódod lefutása is időbe kerül és a timer esemény lekezelése is időbe kerül. A 1000 ms pedig az előző kód lefutása után értendő. Egyszerűbb, ha 100 ms-ként csinálod és elmentett Time (Now) és aktuális Time (Now) közötti különbséget írod mindig ki.

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2505) cigam válasza sztanozs (#2504) üzenetére


cigam
félisten

Ha 100ms-onként fut le, az mennyivel jobb?
Úgy érted, hogy a start pillanatában elmentem az aktuális időt, és a timer evenben az aktuálisból kivonom?Van olyan változótípus, hogy "idő"?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2506) sztanozs válasza cigam (#2505) üzenetére


sztanozs
veterán

DateTime VB.NET-ben, vagy Date VB6-ban. Esetleg Long (timestamp) vagy Double (Excel).

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2507) cigam válasza sztanozs (#2506) üzenetére


cigam
félisten

VB2010-el bírkózok, és nagyon kezdő vagyok.
Szöveges változóba tároljam le, és csak vonjam ki belőle az aktuális időt?
stopperido=startido$-time(now)
Vagy nekem kell kisakkozni a perc, másodperc értékekből?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2508) Milgram1 válasza bucsupeti (#2502) üzenetére


Milgram1
aktív tag

angollal megvagyok :D
:R

(#2509) sztanozs válasza cigam (#2507) üzenetére


sztanozs
veterán

Nem, DateTime-ban tárold és a kivonás egy TimeSpan objektumot hoz létre. Ez már magában időtartamot reprezentál. MSDN-ről:
Dim startTime As Date = Now
' Run the process that is to be timed.
Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime)
Dim millisecs As Integer = runLength.Milliseconds

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2510) cigam válasza sztanozs (#2509) üzenetére


cigam
félisten

Köszi!
Akkor ezzel azt is letudom mérni,hogy maga a program, ill. 1-1 szubrutin/funkció mennyi idő alatt fut le?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2511) sztanozs válasza cigam (#2510) üzenetére


sztanozs
veterán

Igen, de ez nem túl pontos.
Ezt célszerű használni inkább: Stopwatch (System.Diagnostic)
[link]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2512) cigam válasza sztanozs (#2511) üzenetére


cigam
félisten

Köszi! Tanulmányozom...

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2513) vilag


vilag
tag

Hali!

Nem tudja valaki, hogy Win7 és Office 2007 alatt az alábbi kódrészlettel mi lehet a baj?

Private Function GetActive(con As Control) As Control 'Aktív vezérlő meghatározása

If TypeName(con) = "UserForm" Then
Dim f As UserForm
Set f = con
Set GetActive = GetActive(f.ActiveControl)
ElseIf TypeName(con) = "MultiPage" Then
Dim mp As MultiPage
Set mp = con
Set GetActive = GetActive(mp.SelectedItem)
ElseIf TypeName(con) = "Page" Then
Dim pg As Page
Set pg = con
Set GetActive = GetActive(pg.ActiveControl)
ElseIf TypeName(con) = "Frame" Then
Dim fr As Frame
Set fr = con
Set GetActive = GetActive(fr.ActiveControl)
Else
Set GetActive = con
End If

End Function

XP alatt tökéletesen működik.
Win7 alatt a "Set pg = con sornál "Type mismatch" hibaüzenetet ad.

Van esetleg valakinek ötlete?
Olyan megoldás is érdekel ha valaki tudja hogyan lehet kinyerni, hogy éppen melyik vezérlőben vagyok, vagyis annak a nevét.

(#2514) vilag válasza vilag (#2513) üzenetére


vilag
tag

Üdv!

Meglett a megoldás.

Ebből:
Dim pg As Page

Ez lett:
Dim pg

Érdekes módon, így jól működik Office 2007 alatt is.

(#2515) vilag


vilag
tag

Tud esetleg valaki segíteni abban, hogy vonalkódgenerátor kellene.

Igazából postai ragszám alapján szeretnék vonalkódot előállítani.

Ma találtam vonalkód betűtípust, de sajnos a vonalkódolvasó nem olvasta be (ellenben a telefonom igen :) ).
Egyébként pedig tökre nem hasonlít az eredeti ragszám vonalkódjára.

Ötlet valakinek?

(#2516) sztanozs válasza vilag (#2515) üzenetére


sztanozs
veterán

van netes generátor egy csomó: [link]

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2517) vilag válasza sztanozs (#2516) üzenetére


vilag
tag

Valamiért leragadtam a betűtípus lehetőségnél és így meg nem is kerestem.

Megnézegetem majd, a lényeg, hogy ha megoldható, akkor ne nagyon kelljen külön telepítgetni semmit (bár végül is az is megoldható).

Köszi!

(#2518) vilag válasza sztanozs (#2516) üzenetére


vilag
tag

Amiket néztem, azok nem váltak be.

A vége az lett, hogy a kollégám írt egy generátort :D

(#2519) sztanozs válasza vilag (#2518) üzenetére


sztanozs
veterán

:DDD

Megosztani nem szeretnéd?

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2520) vilag válasza sztanozs (#2519) üzenetére


vilag
tag

A kollégám hozzájárulásával közzéteszem.

Röviden annyi a lényeg, hogy maga a vonalkód betűtípus nem elégséges arra, hogy visszaolvasható vonalkódot készítsünk, kell még bele egy indító- egy záró- és egy ellenőrző karakter is.

Az alábbi kódrészlet a magyar postai ragszámnak- (RL) és a nemzetközi ragszámnak (RR) megfelelő vonalkódot generál.
Figyelem! Az alábbi kóddal generált ragszám "képe" nem egyezik meg (hosszabb) a ragszámon lévő vonalkód képével, azonban beolvasáskor ugyan azt az értéket kapjuk!

Public szov As String
Public h As Long

Private Sub CommandButton1_Click()

vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege

Dim vk(2, 100)
For i = 0 To h
If i = 0 Then
vk(1, i) = Chr(204)
vk(2, i) = 104
Else
vk(1, i) = Mid(szov, i, 1)
vk(2, i) = Asc(vk(1, i)) - 32
End If
If i = 0 Then k = 1 Else k = i
ossz = ossz + vk(2, i) * k
vkod = vkod + vk(1, i)
Next

eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
vkod = vkod + Chr(eossz + 32) + Chr(206)
ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")

End Sub

Az eltérésnek az az oka, hogy a vonalkódban rövidítést alkalmazni, azaz minden számpár helyére az értékének megfelelő karakter kerül. Pl.: a RL33... -nál a 33 helyére az "A" betű kódja kerül.

Az alábbi kóddal generált vonalkód képe megegyezik a valódi ragszámon megjelenő "képpel" azonban ez csak a magyar (RL) ragszámmal működik!
A nemzetközi ragszámhoz (RR) még ki kell derítenünk az algoritmust, aztán remélhetőleg azt is megcsináljuk.

Public szov As String
Public h As Long

Private Sub CommandButton1_Click()

vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege
j = 1


Dim vk(2, 100)

For i = 0 To h

Select Case i
Case 0
vk(1, i) = Chr(204)
vk(2, i) = 104
j = i
Case 1 To 2
vk(1, i) = Mid(szov, i, 1)
If Asc(vk(1, i)) < 195 Then vk(2, i) = Asc(vk(1, i)) - 32 Else vk(2, i) = Asc(vk(1, i)) - 100
j = i
Case 3
j = i
vk(1, i) = Chr(199)
vk(2, i) = Asc(vk(1, i)) - 100
Case Else
If Application.WorksheetFunction.IsEven(i) = True Then
j = i - ((i - 4) / 2)
s2 = Val(Mid(szov, i - 1, 2))
If s2 < 95 Then vk(1, j) = Chr(s2 + 32) Else vk(1, j) = Chr(s2 + 100)
vk(2, j) = s2
End If



End Select
If j = 0 Then k = 1 Else k = j
If i <= 3 Or Application.WorksheetFunction.IsEven(i) = True Then
ossz = ossz + vk(2, j) * k
vkod = vkod + vk(1, j)
End If
Next

eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
vkod = vkod + Chr(eossz + 32) + Chr(206)
ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")

End Sub

Szerk.: Ahhoz, hogy valóban vonalkódot állítsunk elő a fentiek segítségével, ahhoz szükség van még egy Code 128 B betűtípusra is, melyet a googli segítségével könnyedén találhatunk.

Ha azt szeretnénk, hogy a kapott vonalkód más -olyan számítógépeken is megjelenjen, amelyeken az adott betűtípus nincs telepítve, akkor a betűtípust be kell ágyaznunk a fájlba, hogy vigye magával.
Ez csak ttf és otf betűtípusok esetében lehetséges és csak akkor, ha a betűtípus licence megengedi.

Beágyazás: Office 2007 Word esetében: Fájl/Word beállításai/Mentés/Betűtípusok beágyazása fájlba.

[ Szerkesztve ]

(#2521) sztanozs válasza vilag (#2520) üzenetére


sztanozs
veterán

Köszi :R

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2522) Delila_1 válasza vilag (#2520) üzenetére


Delila_1
veterán

Egy ismerősöm úgy oldotta meg, hogy a konvertálásnál a szöveg elé és mögé tett egy-egy csillagot.
A1 tartalmazza a szöveget, a bárkód betűtípust tartalmazó cella képlete pedig ="*" & A1 & "*"

Nem minden olvasó tudja ezt követni, de náluk a munkahelyén egyikkel sem volt gond.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#2523) Diopapa


Diopapa
addikt

Sziasztok!

A segítségeteket kérném. Belefutottam egy problémába és nem boldogulok vele. Egy függvényt szeretnék írni az alábbi problémára. Vannak adataim.. Két oszlop, benne összetartozó számok. Ezek helyek azonosítói. A számok azt reprezentálják, hogy pl a "41"-es helyről el lehet jutni a "64"-esre, a "42-"-esre, a "49"-esre stb. A függvényem azt csinálná, hogy megadott helyről pl "32" egy másik helyre pl "42" milyen útvonalon tudok eljutni a legkevesebb lépésből. pl 32 -> 74 -> 48 -> 42. Remélem érthető. Ezek az adatok egy adatbázisban vannak ha számít valamit.

Nagyon köszönöm a segítséget előre is.. :R

Citizen Diopapa / Commander Diopapa "SC csomag olyan, mint a barackfa, unokáidnak veszed - .tnm / De pálinkát nemlehet főzni belűle - *SkyS1gn"

(#2524) sztanozs válasza Diopapa (#2523) üzenetére


sztanozs
veterán

fa bejárása

A probléma akkor oldahtó meg egyszerűen, ha az útvonalak által generált gráf körmentes (fa).

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2525) Diopapa válasza sztanozs (#2524) üzenetére


Diopapa
addikt

Nem fa sajnos. A fa "ágai" is kapcsolatban áll(hat)nak egymással 

[ Szerkesztve ]

Citizen Diopapa / Commander Diopapa "SC csomag olyan, mint a barackfa, unokáidnak veszed - .tnm / De pálinkát nemlehet főzni belűle - *SkyS1gn"

(#2526) sztanozs válasza Diopapa (#2525) üzenetére


sztanozs
veterán

Akkor olyan bejárás kell, hogy először megkeresed az első lehetséges utat (tetszőleges bejárással) és a talált útnál rövidebb utat keresel visszalépés-alternatív próbálkozás-hosszabb kizárás módszerrel.

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2527) Diopapa válasza sztanozs (#2526) üzenetére


Diopapa
addikt

Hű ez jól hangzik, valami ilyesmit képzeltem, csak nem voltam benne biztos, hogy ez megadja a legrövidebb lépésszámot a végén.

Citizen Diopapa / Commander Diopapa "SC csomag olyan, mint a barackfa, unokáidnak veszed - .tnm / De pálinkát nemlehet főzni belűle - *SkyS1gn"

(#2528) vilag válasza vilag (#2520) üzenetére


vilag
tag

Kiegészítés.

A betűtípus beágyazásnál a "Csak a dokumentumban használt karakterek beágyazása" pontot ne pipáljuk be!!!!!!, mert tényleg csak az adott dokumentumban szereplő karaktereket viszi magával!!!!

Ergo a code 128 karaktertábla többi karakterét nem!

(#2529) vilag válasza Delila_1 (#2522) üzenetére


vilag
tag

Elképzelhető, hogy működik, bár ebben az esetben biztos, hogy nem a ragszámon szereplő vonalkód "képét" kapod vissza. Ennek oka az, hogy nem történik rövidítés (mind az általam közzétett 1. változatban sem).

Beszélgettünk erről a kollégával és arra jutottunk, hogy valóban lehetne rövidíteni a programkódot, hogy ha figyelembe vennénk a postai ragszám tényleges hosszát, mert jelenleg 'bármilyen' hosszú vonalkódot kezel, nem csak 16 karakterig.

(#2530) Apollo17hu


Apollo17hu
őstag

Sziasztok!

Van egy Excel-fájlom rengeteg makróval megbolondítva. Néhány hónapja vettem át egy kollégától, a makrókhoz szándékosan nem nyúltam, nehogy megboruljon az egész.

Sajnos az utóbbi időkben mentéskor(!) elég sűrűn fordul elő, hogy hibaüzenetet kapok, miszerint az egyik makró hibára futott. Mindez teljesen random jelentkezik (tehát nem minden mentéskor).

Van autoopen makró, és vannak olyan makrók is a munkafüzetben, amelyek worksheetchange esetén futnak.

Az a kérdésem, hogy létezik-e olyan makró, aminek futását a mentési esemény indítja el? Ha nincs, mi okozhatja a mentéskori indulást?

(#2531) Delila_1 válasza Apollo17hu (#2530) üzenetére


Delila_1
veterán

A BeforeClose ez az esemény. Rendszerint a ThisWorkbook laphoz rendeljük. Próbáld meg lépésenként futtatni, úgy könnyebben felfedezheted a hiba oká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.

(#2532) Apollo17hu válasza Delila_1 (#2531) üzenetére


Apollo17hu
őstag

Köszönöm, átnézem a makrókat ez alapján.

(#2533) Delila_1 válasza Apollo17hu (#2532) üzenetére


Delila_1
veterán

Remélem, sikerül kiszűrni.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#2534) vilag válasza Delila_1 (#2522) üzenetére


vilag
tag

Nos, végre eljutottam odáig, hogy kipróbáljam.

Nem működik!
A vonalkód olvasó nem olvassa, pedig ez nem valami himpli-hampli 500 Ft-os vonalkódolvasó.

Most úgy vagyok mint Edison az első 1000 villanykörténél, most már tudom, hogy ez a megoldás nem vezet a kívánt eredményre.

(#2535) Delila_1 válasza vilag (#2534) üzenetére


Delila_1
veterán

Valószínű, hogy a kódolvasó leírásában megtalálod, mi felel meg az ízlésének. Ez a csillagos megoldás 1 bizonyos olvasónál bevált.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#2536) Apollo17hu válasza Delila_1 (#2533) üzenetére


Apollo17hu
őstag

Sajnos se BeforeClose, se BeforeSave eseményt nem találtam, viszont kis szerencsével megtaláltam, hogy mely makró(k) fut(nak). (Az egyik az állapotsor szövegét is módosítja, ott vettem észre futás közben.) Az továbbra is rejtély, hogy miért indulnak el ezek a makrók. (Ebből az egyik egy "gyorsító" makró, ami kikapcsol mindenféle frissítést, kalkulációt, majd a végén mindent visszaállít.) Nálam 2007-es Excel van, munkatársamnál 2013-as, nála nem jelentkezik a hiba. Nagyon homály ez az egész nekem, de nemsokára én is átállok 2013-asra...

(#2537) Delila_1 válasza Apollo17hu (#2536) üzenetére


Delila_1
veterán

A VB szerkesztőben a füzetedhez tartozó ThisWorkbook lapra kattints rá bal oldalon, akkor jobb oldalon megtalálod a leírt események makróit.

A "gyorsító" makrók valószínűleg az egyes munkalapjaidhoz vannak rendelve, a fenti leírás szerint találod meg, a munkalapokra klikkelve egyenként.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#2538) Apollo17hu válasza Delila_1 (#2537) üzenetére


Apollo17hu
őstag

Ez a probléma, hogy végignéztünk már szinte mindent, és még így is rejtély.
ThisWorkbook-ban két dolog van AutoOpen-hez rendelve:
- R1C1 -re állítódik a függvénykezelés,
- egy összesítő munkalapra ugrik a fókusz (ehhez az összesítő laphoz semmilyen makró nincs hozzárendelve).

Azért ha idő közben újabb nyom van, vagy sikerül rájönni a probléma forrására, jelentkezem.

(#2539) vilag


vilag
tag

Üdv!

Van egy újkeletű problémám:

A korábban említett vonalkód témához kapcsolódik.
Mint említettem is a Word esetében a betűtípus beágyazása csak többé-kevésbé működőképes megoldás, így az abban érintett gépekre kézzel telepítettem a megfelelő betűtípust rendszergazdaként.

Egy újabb fejlesztés eredményeként egy excel fájlban szeretném alkalmazni az említett vonalkód-betűtípust, azonban mint előbb írtam ehhez rendszergazda jog szükséges.
A rendszergazda felhasználónév és jelszó ismert a számomra.

A kérdés tehát az, hogy mezei felhasználóként bejelentkezve VBA-ból tudok-e -és ha igen, akkor hogyan- olyan másolás parancsot kiadni, ahol programból kerül megadásra a rendszergazda felhasználónév és jelszó felhasználói beavatkozás nélkül.

Azaz tudok-e a Font mappába másolni anélkül, hogy kérje a rendszergazda felhasználónevet és jelszót magától a felhasználótól?

a "FileCopy" parancsnál nem láttam olyan paramétert, hogy felhasználónév, jelszó.
Gondolkodtam még batch fájlban is hasonló megoldással ha esetleg abban meglehet oldani.

Várom a javaslatokat! Köszi!

[ Szerkesztve ]

(#2540) vilag válasza vilag (#2520) üzenetére


vilag
tag

Kis javítás a kódokban:

1. verzió:

Public szov As String
Public h As Long

Private Sub CommandButton1_Click()

vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege

Dim vk(2, 100)
For i = 0 To h
If i = 0 Then
vk(1, i) = Chr(204)
vk(2, i) = 104
Else
vk(1, i) = Mid(szov, i, 1)
vk(2, i) = Asc(vk(1, i)) - 32
End If
If i = 0 Then k = 1 Else k = i
ossz = ossz + vk(2, i) * k
vkod = vkod + vk(1, i)
Next

eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
If eossz < 95 Then
vkod = vkod + Chr(eossz + 32) + Chr(206)
Else
vkod = vkod + Chr(eossz + 100) + Chr(206)
End If
ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")

End Sub

Valamiért nem csinálja meg a kiemelést.
Ez a javítás:
If eossz < 95 Then
vkod = vkod + Chr(eossz + 32) + Chr(206)
Else
vkod = vkod + Chr(eossz + 100) + Chr(206)
End If

2. verzió:

Public szov As String
Public h As Long

Private Sub CommandButton1_Click()

vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege
j = 1

Dim vk(2, 100)

For i = 0 To h

Select Case i
Case 0
vk(1, i) = Chr(204)
vk(2, i) = 104
j = i
Case 1 To 2
vk(1, i) = Mid(szov, i, 1)
If Asc(vk(1, i)) < 195 Then vk(2, i) = Asc(vk(1, i)) - 32 Else vk(2, i) = Asc(vk(1, i)) - 100
j = i
Case 3
j = i
vk(1, i) = Chr(199)
vk(2, i) = Asc(vk(1, i)) - 100
Case Else
' If Application.WorksheetFunction.IsEven(i) = True Then 'XP alatt nem működik!!!
If i Mod 2 = 0 Then 'XP alatt is működik

j = i - ((i - 4) / 2)
s2 = Val(Mid(szov, i - 1, 2))
If s2 < 95 Then vk(1, j) = Chr(s2 + 32) Else vk(1, j) = Chr(s2 + 100)
vk(2, j) = s2
End If

End Select
If j = 0 Then k = 1 Else k = j
' If i <= 3 Or Application.WorksheetFunction.IsEven(i) = True Then 'XP alatt nem működik
If i Mod 2 = 0 Then 'XP alatt is működik

ossz = ossz + vk(2, j) * k
vkod = vkod + vk(1, j)
End If
Next

eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
If eossz < 95 Then
vkod = vkod + Chr(eossz + 32) + Chr(206)
Else
vkod = vkod + Chr(eossz + 100) + Chr(206)
End If

ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")

End Sub

Remélem még hasznos lehet valakinek.

[ Szerkesztve ]

(#2541) Delila_1 válasza Apollo17hu (#2538) üzenetére


Delila_1
veterán

Mikor leáll hibával a makró, a Debug gombra kattints, ne az End-re.

Sárga háttérrel lesz jelölve a sor, amelyikbe belebukott. Ott az egyes változók fölé mutatva (nem rákattintva) megmutatja a pillanatnyi értéküket. Ezekből lehet következtetni a leállás okára.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#2542) PETEE78


PETEE78
senior tag

Sziasztok!

Hátha valaki megválna tőle... :U

Keresem az alábbi könyvet+CD mellékletét:
Kovalcsik Géza: Az Excel programozása
:R

You are being revived

(#2543) vilag válasza vilag (#2539) üzenetére


vilag
tag

Valakinek valami megoldási javaslata a problémával kapcsolatban?

(#2544) wowpegazus


wowpegazus
tag

Sziasztok!

Nem tudom jó helyen érdeklődök-e, remélem tudtok nekem segíteni. Nem tudok programozni, de szeretnék készíteni egy szerepjátékos karakter készítő alkalmazást. Az elképzelés valami olyasmi lenne, mint egy klasszikus rpg játékban.

Teljes képernyős módban futna a program, egyéni háttérrel, esetleg zenével.
Az elején 24 kaszt közül választhatna a játékos. Ezeket ikonok jelképeznék. Ha valamelyikre rákattint a játékos, azt kiválasztja, és jobb oldalon egy rövid leírást felhoz a program.
Lenne egy olyan oldal is, ahol a játékos eloszthat pontokat a karakter főbb tulajdonságai között, + - gombokkal növelve az értéket.
A karakterkészítés egyes lépései között alul tovább, illetve vissza gombbal lehetne lépkedni. A lényeg, hogy a user sok mindent választhatna, amiket aztán a gép állítana össze helyette. A választáshoz a listákat pl. excelből képes lenne beolvasni a program.

A végén a kész karaktert egy excel alapú karakterlapra kinyomná a program.

Valami ilyesmi lenne az elképzelés. Tudtok segíteni ezt milyen ingyenes programmal lehetne elkészíteni a legkönnyebben? Win7 64bit oprencerem van, i5 3550 procival, 8 gb ram, radeon 6850hd videokártyával.

Bárminek nekiállok, csak valami irány kellene, merre kezdjem el.

Hálás köszönettel:

Wowpegazus

(#2545) Diopapa válasza wowpegazus (#2544) üzenetére


Diopapa
addikt

Én a Visual Studio Express-t ajánlom mint ingyenes alkalmazást. Ha valamennyire megy az angol, akkor pedig a stackoverflow jó oldal. ;)

Citizen Diopapa / Commander Diopapa "SC csomag olyan, mint a barackfa, unokáidnak veszed - .tnm / De pálinkát nemlehet főzni belűle - *SkyS1gn"

(#2546) belaur


belaur
tag

Sziasztok,

Van egy Excel táblán 5 sheet-tel, mindegyik sheetet más user használ. Valahogy azt szeretném megoldani, hogy, ha a user megnyitja az Excelt akkor csak azt a sheetet lássa, ami az övé. Ez veryhidden sheetekkel és a windows user felismerésével lehetséges, azonban az Excel file Shared módban van, hogy egyszerre többen tudjanak dolgozni, viszont szerintem ez problémát okoz.

Van valami ötletek arra, hogy lehetne azt megoldani, hogy minden user csak a saját sheetjét lássa, de egyszerre többen is tudjanak dolgozni az Excelben?

Köszi

[ Szerkesztve ]

(#2547) martonx válasza wowpegazus (#2544) üzenetére


martonx
veterán

Én a mai világban ilyet kizárólag online készítenék, azaz webes alkalmazásként. Klsszikus vastag kliensként nem látom sok értelmét.

Én kérek elnézést!

(#2548) martonx válasza belaur (#2546) üzenetére


martonx
veterán

"azonban az Excel file Shared módban van, hogy egyszerre többen tudjanak dolgozni, viszont szerintem ez problémát okoz"

Szerinted, vagy tényleg problémát okoz? ;]
Ha megmakrózod az excelt, és mögé tolsz egy adatbázist, akkor nem kell Shared mode, de lehet hogy ez overkill megoldás. Szvsz nem feltétlenül okoz a shared mode problémát, ergo nem értem, mi a probléma?

Én kérek elnézést!

(#2549) Maciii64


Maciii64
újonc

Sziasztok.

Nem rég kezdtem el Virtual Basicban programozni (2012), s egy gombhoz szeretném kötni, egy .bat fájl megnyitását, ha ez lehetséges, hogy adhatom hozzá, hogy telepítéskor is meglegyen a .bat fájl (persze megoldanám hogy ne lehessen hozzáférni)?

Előre is köszönöm.

(#2550) martonx válasza Maciii64 (#2549) üzenetére


martonx
veterán

Úgy érted 2012-ben kezdtél el programozni visual basic scripteket, vagy Visual Studio 2012-vel kezdtél el VB:Net-et programozni?

Én kérek elnézést!

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual Basic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.