Hirdetés

Új hozzászólás Aktív témák

  • martonx
    veterán

    Egyelőre úgy tűnik a kolléga megoldotta a kérdést, persze ha a felmerült kérdésre tudod a választ, azt szívesen fogadom.

    Addig is köszönöm a segítséget!!

    A választ tudni vélem, már többször le is írtam. :U
    Persze a konkrét fájl ismerete nélkül ez csak, mint legvalószínűbb eshetőségként játszik.

  • vilag
    tag

    gondolom, rá vannak kötve az excel egy-egy mezőjére, ahogy azt már mondtam párszor. Ez már szinte 100% látatlanban is.
    Ha gondolod küld el az excelt, és ránézek, hogy mi a hiba.

    Egyelőre úgy tűnik a kolléga megoldotta a kérdést, persze ha a felmerült kérdésre tudod a választ, azt szívesen fogadom.

    Addig is köszönöm a segítséget!!

  • vilag
    tag

    Bocsi, ezek most cellák, vagy vezérlők?
    Amúgy a cellafrissítések automatikus lefutását kódból ki lehet tiltani, amíg az problémákat okozhat.
    [link]

    AE

    Üdv!

    Úgy tűnik, hogy az automatikus számolás okozza ezt a fölösleges futkározást.
    Már csak abban legyetek a segítségemre, hogy magyarázzátok el, hogy ennek a bekapcsolása miért is okozza azt, hogy folyton lefut a change.

    Volna még egy olyan kérdésem, hogy a userform jobb felső sarkában található "X" gombot le lehet e valahogyan tiltani, mert az terminate-re futtatja a kódot, amin viszont már nem tudok megállítani, meg egyébként is okoz nekem más problémákat.

    Van nekem egy másik problémám is, bár könnyen meglehet, hogy nem kapcsolódik szorosan a VBA-hoz.
    A probléma a fájl biztonsági beállításoknál van. A már említett programocskát többen is használjuk, de azt szeretném elérni, hogy írásra csak bizonyos felhasználóknak legyen elérhető. Eddig még nincs is gond, csak az a baj, hogy az egyik felhasználó akinek írásra is engedélyezve van a fájl, valahogyan mindig saját tulajdonba veszi a fájlt (mikor ráment) és a biztonsági beállítások elszállnak, aminek egyenes következménye, hogy megint mindenki hozzáfér írásra.

    Tud nekem ebben valaki segíteni?

    Üdv, vilag

  • martonx
    veterán

    Van egy rutin ami egy gomb megnyomására az egyes vezérlők tartalmát elkezdi egyesével kiirkálni az excel tábal megfelel cellájába.
    Most azt vettem észre, hogy a két évszámos vezérlő (CB4 és CB7) change minden egyes alkalommal lefut amikor egy-egy érték kiíródik az excel tábla.
    Esetleg ez megvilágosít nálad valamit?

    gondolom, rá vannak kötve az excel egy-egy mezőjére, ahogy azt már mondtam párszor. Ez már szinte 100% látatlanban is.
    Ha gondolod küld el az excelt, és ránézek, hogy mi a hiba.

  • ArchElf
    addikt

    Van egy rutin ami egy gomb megnyomására az egyes vezérlők tartalmát elkezdi egyesével kiirkálni az excel tábal megfelel cellájába.
    Most azt vettem észre, hogy a két évszámos vezérlő (CB4 és CB7) change minden egyes alkalommal lefut amikor egy-egy érték kiíródik az excel tábla.
    Esetleg ez megvilágosít nálad valamit?

    Bocsi, ezek most cellák, vagy vezérlők?
    Amúgy a cellafrissítések automatikus lefutását kódból ki lehet tiltani, amíg az problémákat okozhat.
    [link]

    AE

  • vilag
    tag

    én sem egyetemen tanultam :)

    A kódodat nem ismerem, nem látom, őszintén nem is akarom látni. Csak találgatok, hogy mi okozhatja az esemény elsülését. És az biztos, hogy valami triviális dolog.

    A kérdésedre te magad fogsz tudni válaszolni, egy minimális debugolással.

    Van egy rutin ami egy gomb megnyomására az egyes vezérlők tartalmát elkezdi egyesével kiirkálni az excel tábal megfelel cellájába.
    Most azt vettem észre, hogy a két évszámos vezérlő (CB4 és CB7) change minden egyes alkalommal lefut amikor egy-egy érték kiíródik az excel tábla.
    Esetleg ez megvilágosít nálad valamit?

  • vilag
    tag

    én sem egyetemen tanultam :)

    A kódodat nem ismerem, nem látom, őszintén nem is akarom látni. Csak találgatok, hogy mi okozhatja az esemény elsülését. És az biztos, hogy valami triviális dolog.

    A kérdésedre te magad fogsz tudni válaszolni, egy minimális debugolással.

    Ezt már komolyan nem hiszem el.

    Próbálok egy másik problémát orvosolni, erre azt veszem észre, hogy ugyan oda lyukadok ki, hogy a már említett vezérlő change elkezd futni.
    Épp az initializálást futtatja, aztán ennél a sornál átvált a CB7 Change-re:

    Sheets("napló").Range("j2").Value = Sheets("irszam").Range("a1").End(xlDown).Row

    Most mond meg nekem, hogy ez hogy a búbánatos francban váltja ki a CB7 Change lefutását????

  • vilag
    tag

    én sem egyetemen tanultam :)

    A kódodat nem ismerem, nem látom, őszintén nem is akarom látni. Csak találgatok, hogy mi okozhatja az esemény elsülését. És az biztos, hogy valami triviális dolog.

    A kérdésedre te magad fogsz tudni válaszolni, egy minimális debugolással.

    Abban én is biztos vagyok, hogy valami nagyon egyszerű megoldása lesz a dolognak (ha egyszer megtalálom).

    Egyébként ha tudnád, hogy a debuggolást már hányszor játszottuk végig...
    Egyszerűen értetlenül állok a dolog előtt.

    Azért ha esetleg mégis megtalálom a megoldást megírom, hátha érdekel.

  • martonx
    veterán

    Bocs, hogy értetlen vagyok, de nem tanultam egyetemen a programozást.

    Egyébként meg Te sem értetted amit én írtam, mert nincs hibaüzenet, csak hibás működés amit ugyan elhárítottam (egy változó bevezetésével), csak az okát szeretném megtudni.

    A Combobox4 közvetlenül nincs excel mezőhöz kötve (már ha egyáltalán excel mezőre gondolsz). Csak közvetetten van excelmezőhöz kötve. Egy dátum évszáma, tehát a CB4,CB5,CB6 mezők értéke összefűzésre kerül és csak ez után íródik a tábla egy cellájába.
    A probléma csak annyi, hogy ez esetben ez nem történik meg, mert az tök más folyamat ami ettől független.

    Még egy dolog jutott eszembe. Az évszám a userform initializálásakor kap automatikusan értéket a trim(str(Year(date))) segítségével. Ez indukálhatja eseteg a change lefutását valamilyen módon?

    én sem egyetemen tanultam :)

    A kódodat nem ismerem, nem látom, őszintén nem is akarom látni. Csak találgatok, hogy mi okozhatja az esemény elsülését. És az biztos, hogy valami triviális dolog.

    A kérdésedre te magad fogsz tudni válaszolni, egy minimális debugolással.

  • vilag
    tag

    nem értetted amit írtam. Nem érdekel a kódod. A hibaüzenet esetleg érdekelt volna, bár az excel elég semmit mondó üzeneteket ad vissza.
    Egy dolog érdekel, hogy a combobx4 be van-e kötve valamelyik mezőhöz, és ha igen melyikhez.
    Mert ez lenne a legépeszűbb magyarázata a change event kiváltásának.
    Bár látom feleslegesen koptatom a billentyűzetet.

    Bocs, hogy értetlen vagyok, de nem tanultam egyetemen a programozást.

    Egyébként meg Te sem értetted amit én írtam, mert nincs hibaüzenet, csak hibás működés amit ugyan elhárítottam (egy változó bevezetésével), csak az okát szeretném megtudni.

    A Combobox4 közvetlenül nincs excel mezőhöz kötve (már ha egyáltalán excel mezőre gondolsz). Csak közvetetten van excelmezőhöz kötve. Egy dátum évszáma, tehát a CB4,CB5,CB6 mezők értéke összefűzésre kerül és csak ez után íródik a tábla egy cellájába.
    A probléma csak annyi, hogy ez esetben ez nem történik meg, mert az tök más folyamat ami ettől független.

    Még egy dolog jutott eszembe. Az évszám a userform initializálásakor kap automatikusan értéket a trim(str(Year(date))) segítségével. Ez indukálhatja eseteg a change lefutását valamilyen módon?

  • martonx
    veterán

    De tudomásom szerint csak excelbe történő kiírás folyik, onnan visszaolvasás nem. Legalább is ennél a folyamatnál nem. Tehát nem tudok rájönni, hogy mi indokolja egy elvileg nem érintett combobox change-ének lefutását. Mitől változna az értéke????

    Csak egy nyamvad évszám van benne.

    Akkor a kódrészletek:
    A gomb megnyomásakor ez fut le:
    Private Sub CommandButton6_Click() 'Partner rögzítése a gyakori partnerek listájára

    If ComboBox12.Text = "" Or ComboBox2.Text = "" Or TextBox3.Text = "" Or ComboBox1.Text = "" Then
    hiba = MsgBox("Valamely címzéshez szükséges adat hiányzik, kérlek ellenőrizd!", 16, "Címadat hiba")
    Exit Sub
    End If

    üzenet = MsgBox("Biztosan rögzíteni akarod a partnert a gyakori partnerek listájára az alábbi adatokkal?" + Chr(13) + Chr(13) + _
    "Név:" + Chr(9) + Chr(9) + ComboBox12.Text + Chr(13) + _
    "Település:" + Chr(9) + ComboBox2.Text + Chr(13) + _
    "Utca, hászám:" + Chr(9) + TextBox3.Text + Chr(13) + _
    "Irányítószám:" + Chr(9) + ComboBox1.Text, 36, "Partnerrögzítés")

    If üzenet = 2 Then
    Exit Sub
    Else
    kileptet = False
    partnerujsor = ThisWorkbook.Worksheets("Partnerek").Range("a2").End(xlDown).Row + 1
    ThisWorkbook.Worksheets("Partnerek").Range("a" + Trim(Str(partnerujsor))).Value = Trim(Str(partnerujsor - 1))
    ThisWorkbook.Worksheets("Partnerek").Range("b" + Trim(Str(partnerujsor))).Value = ComboBox12.Text
    ThisWorkbook.Worksheets("Partnerek").Range("c" + Trim(Str(partnerujsor))).Value = ComboBox2.Text
    ThisWorkbook.Worksheets("Partnerek").Range("d" + Trim(Str(partnerujsor))).Value = TextBox3.Text
    ThisWorkbook.Worksheets("Partnerek").Range("e" + Trim(Str(partnerujsor))).Value = ComboBox1.Text
    kileptet = True
    End If

    End Sub

    ahol kiléptet=a probléma miatt bevezetett változó

    A futkározó vezérlő change-e:

    Private Sub ComboBox4_Change() 'postázás éve

    If kileptet = False Then Exit Sub

    If eloszor = True Then Exit Sub
    CommandButton3.Enabled = True
    CommandButton2.Enabled = True

    If ComboBox4.MatchFound = False And Len(ComboBox4.Value) > 0 Then
    hiba = MsgBox("A postázás éve négy jegyű és nem térhet el az aktuális évtől egy évvel többel!", vbCritical + vbOKOnly, "Dátum beviteli hiba")
    ComboBox4.ListIndex = -1
    Exit Sub
    End If

    If ComboBox4.ListIndex = -1 Then Exit Sub
    postev = ComboBox4.Value
    If Int(postev / 4) <> postev / 4 Then szoko = False Else szoko = True
    If postho = "02" Then
    If szoko = True Then
    ComboBox6.RowSource = "napló!h2:h30"
    If ComboBox6.ListIndex = -1 Then
    ComboBox6.ListIndex = 28
    postnap = ComboBox6.Text
    End If
    Else
    ComboBox6.RowSource = "napló!h2:h29"
    If ComboBox6.ListIndex = -1 Then
    ComboBox6.ListIndex = 27
    postnap = ComboBox6.Text
    End If
    End If
    End If


    End Sub

    Mint látható az első részletben szó sem esik a Combobox4-ről.
    Így esetleg valami ötlet???

    nem értetted amit írtam. Nem érdekel a kódod. A hibaüzenet esetleg érdekelt volna, bár az excel elég semmit mondó üzeneteket ad vissza.
    Egy dolog érdekel, hogy a combobx4 be van-e kötve valamelyik mezőhöz, és ha igen melyikhez.
    Mert ez lenne a legépeszűbb magyarázata a change event kiváltásának.
    Bár látom feleslegesen koptatom a billentyűzetet.

  • vilag
    tag

    excel makróról beszélünk ugye?
    A combobox jó eséllyel rá van kötve egy mezőre.
    Amikor az adatok visszaíródnak, pont az a mező is átíródik, ergo megváltozik a combobox értéke is :)
    De ez csak egy ötlet.

    De tudomásom szerint csak excelbe történő kiírás folyik, onnan visszaolvasás nem. Legalább is ennél a folyamatnál nem. Tehát nem tudok rájönni, hogy mi indokolja egy elvileg nem érintett combobox change-ének lefutását. Mitől változna az értéke????

    Csak egy nyamvad évszám van benne.

    Akkor a kódrészletek:
    A gomb megnyomásakor ez fut le:
    Private Sub CommandButton6_Click() 'Partner rögzítése a gyakori partnerek listájára

    If ComboBox12.Text = "" Or ComboBox2.Text = "" Or TextBox3.Text = "" Or ComboBox1.Text = "" Then
    hiba = MsgBox("Valamely címzéshez szükséges adat hiányzik, kérlek ellenőrizd!", 16, "Címadat hiba")
    Exit Sub
    End If

    üzenet = MsgBox("Biztosan rögzíteni akarod a partnert a gyakori partnerek listájára az alábbi adatokkal?" + Chr(13) + Chr(13) + _
    "Név:" + Chr(9) + Chr(9) + ComboBox12.Text + Chr(13) + _
    "Település:" + Chr(9) + ComboBox2.Text + Chr(13) + _
    "Utca, hászám:" + Chr(9) + TextBox3.Text + Chr(13) + _
    "Irányítószám:" + Chr(9) + ComboBox1.Text, 36, "Partnerrögzítés")

    If üzenet = 2 Then
    Exit Sub
    Else
    kileptet = False
    partnerujsor = ThisWorkbook.Worksheets("Partnerek").Range("a2").End(xlDown).Row + 1
    ThisWorkbook.Worksheets("Partnerek").Range("a" + Trim(Str(partnerujsor))).Value = Trim(Str(partnerujsor - 1))
    ThisWorkbook.Worksheets("Partnerek").Range("b" + Trim(Str(partnerujsor))).Value = ComboBox12.Text
    ThisWorkbook.Worksheets("Partnerek").Range("c" + Trim(Str(partnerujsor))).Value = ComboBox2.Text
    ThisWorkbook.Worksheets("Partnerek").Range("d" + Trim(Str(partnerujsor))).Value = TextBox3.Text
    ThisWorkbook.Worksheets("Partnerek").Range("e" + Trim(Str(partnerujsor))).Value = ComboBox1.Text
    kileptet = True
    End If

    End Sub

    ahol kiléptet=a probléma miatt bevezetett változó

    A futkározó vezérlő change-e:

    Private Sub ComboBox4_Change() 'postázás éve

    If kileptet = False Then Exit Sub

    If eloszor = True Then Exit Sub
    CommandButton3.Enabled = True
    CommandButton2.Enabled = True

    If ComboBox4.MatchFound = False And Len(ComboBox4.Value) > 0 Then
    hiba = MsgBox("A postázás éve négy jegyű és nem térhet el az aktuális évtől egy évvel többel!", vbCritical + vbOKOnly, "Dátum beviteli hiba")
    ComboBox4.ListIndex = -1
    Exit Sub
    End If

    If ComboBox4.ListIndex = -1 Then Exit Sub
    postev = ComboBox4.Value
    If Int(postev / 4) <> postev / 4 Then szoko = False Else szoko = True
    If postho = "02" Then
    If szoko = True Then
    ComboBox6.RowSource = "napló!h2:h30"
    If ComboBox6.ListIndex = -1 Then
    ComboBox6.ListIndex = 28
    postnap = ComboBox6.Text
    End If
    Else
    ComboBox6.RowSource = "napló!h2:h29"
    If ComboBox6.ListIndex = -1 Then
    ComboBox6.ListIndex = 27
    postnap = ComboBox6.Text
    End If
    End If
    End If


    End Sub

    Mint látható az első részletben szó sem esik a Combobox4-ről.
    Így esetleg valami ötlet???

  • martonx
    veterán

    ÜDV!

    Újabb kérdésem lenne.

    Létrehoztam 2 objektumot, az egyikbe nyitottam egy excel fájlt, ezt tudom is kezelni, nincs vele gond. A másikba pedig egy word-öt.
    A Wordbe beszúrtam egy szövegmezőt text1 névvel. Egy formról szeretnék ennek értéket adni.

    Wrd = CreateObject("Word.Application")
    Wrd.Visible = True
    Wrd.Documents.Open("F:\Szerzodes.doc")

    Wrd.Documents.text1 = TextBox1.Text 'itt a hiba....

    Wrd.Documents.text1.text = TextBox1.Text

    esetleg? Vagy

    Wrd.Documents.text1.value = TextBox1.Text

    Az itt a hiba kicsit kevés volt.

  • Messss
    csendes tag

    ÜDV!

    Újabb kérdésem lenne.

    Létrehoztam 2 objektumot, az egyikbe nyitottam egy excel fájlt, ezt tudom is kezelni, nincs vele gond. A másikba pedig egy word-öt.
    A Wordbe beszúrtam egy szövegmezőt text1 névvel. Egy formról szeretnék ennek értéket adni.

    Wrd = CreateObject("Word.Application")
    Wrd.Visible = True
    Wrd.Documents.Open("F:\Szerzodes.doc")

    Wrd.Documents.text1 = TextBox1.Text 'itt a hiba....

  • Oly
    őstag

    Azt hittem, hogy van jobb lehetőség is.
    Mivel csak 2-3 button van, így nem gázos... Köszi

    Más:

    Function mailsender()
    Dim objOutlook, objMail, oAddSig

    Set objOutlook = CreateObject("Outlook.Application")
    objOutlook.Session.Logon
    Set objMail = objOutlook.CreateItem(olMailItem)
    Set objOutlook = objMail.GetInspector

    With objMail
    .SentOnBehalfOfName = "from"
    .To = "to"
    .Cc = "cc"
    .Subject = "Subject"
    .Body = "Body"
    .Display
    End With

    Set objOutlook = Nothing
    Set objMail = Nothing
    End Function

    Hogyan tudnám megadni, hogy a felugró levélhez már szúrja be az alapértelmezett Outlook aláírást is?
    Amiket találtam (pl: [link]) azért nem jó, mert több gépen fogják használni, más-más aláírási filenévvel.

    Találtam egy ilyet is, de ez meg nem akar működni HTML-be ültetve.

    Az otthoni gépemen már működött a lenti script, de melóban nem megy.
    Win7 + Outlook 2007 és Server 2003 + Outlook 2010 esetén sem ment.
    Azt mondta, hogy:
    ActiveX component can't create object: 'Outlook.Application'

  • ArchElf
    addikt

    Sziasztok

    Van egy HTML űrlapom, amit VBA (vagyVBS... mittomén :P ) dolgoz fel.
    Nem találom, hogy miként tudnék dolgozni a kijelölt radio button értékével.

    <label>
    <input type="radio" name="szin" value="Fekete">
    Fekete </label>
    <br>
    <label>
    <input type="radio" name="szin" value="Fehér">
    Fehér </label>

    Hogyan tudnám változóként kezelni, hogy mit jelölünk ki?

    Select esetén működik a document.getElementById("orszagok").value

    <label for="orszagok">Válasszon országot:</label>
    <select name="orszagok" id="orszagok">
    <option value="HU">Magyarország</option>
    <option value="AT">Ausztria</option>
    <option value="BE">Belgium</option>
    <option value="BG">Bulgária</option>
    </select>

    Vannak olyan esetek, amikor a radio Button jobb lenne.

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

    document.getElementById("orszagok").value
    RadioButton esetén is működik, ha van ID property-je... Nálad nem volt.

    Amúgy meg RadioButtonra ott a
    document.getElementsByName("szin")
    Ezen egy foreach-el végignyomulsz, és megnézed melyik value melett igaz a checked property...

    AE

  • Oly
    őstag

    radio button-nak is ugyanígy lekérdezhető az értéke. Viszont minden egyes gombot külön objektumként kell ellenőrizni, hogy melyiknek igaz a .checked tulajdonsága.
    Javascriptes példáktól hemzseg az internet.

    Azt hittem, hogy van jobb lehetőség is.
    Mivel csak 2-3 button van, így nem gázos... Köszi

    Más:

    Function mailsender()
    Dim objOutlook, objMail, oAddSig

    Set objOutlook = CreateObject("Outlook.Application")
    objOutlook.Session.Logon
    Set objMail = objOutlook.CreateItem(olMailItem)
    Set objOutlook = objMail.GetInspector

    With objMail
    .SentOnBehalfOfName = "from"
    .To = "to"
    .Cc = "cc"
    .Subject = "Subject"
    .Body = "Body"
    .Display
    End With

    Set objOutlook = Nothing
    Set objMail = Nothing
    End Function

    Hogyan tudnám megadni, hogy a felugró levélhez már szúrja be az alapértelmezett Outlook aláírást is?
    Amiket találtam (pl: [link]) azért nem jó, mert több gépen fogják használni, más-más aláírási filenévvel.

    Találtam egy ilyet is, de ez meg nem akar működni HTML-be ültetve.

  • martonx
    veterán

    Sziasztok

    Van egy HTML űrlapom, amit VBA (vagyVBS... mittomén :P ) dolgoz fel.
    Nem találom, hogy miként tudnék dolgozni a kijelölt radio button értékével.

    <label>
    <input type="radio" name="szin" value="Fekete">
    Fekete </label>
    <br>
    <label>
    <input type="radio" name="szin" value="Fehér">
    Fehér </label>

    Hogyan tudnám változóként kezelni, hogy mit jelölünk ki?

    Select esetén működik a document.getElementById("orszagok").value

    <label for="orszagok">Válasszon országot:</label>
    <select name="orszagok" id="orszagok">
    <option value="HU">Magyarország</option>
    <option value="AT">Ausztria</option>
    <option value="BE">Belgium</option>
    <option value="BG">Bulgária</option>
    </select>

    Vannak olyan esetek, amikor a radio Button jobb lenne.

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

    radio button-nak is ugyanígy lekérdezhető az értéke. Viszont minden egyes gombot külön objektumként kell ellenőrizni, hogy melyiknek igaz a .checked tulajdonsága.
    Javascriptes példáktól hemzseg az internet.

  • Oly
    őstag

    Sziasztok

    Van egy HTML űrlapom, amit VBA (vagyVBS... mittomén :P ) dolgoz fel.
    Nem találom, hogy miként tudnék dolgozni a kijelölt radio button értékével.

    <label>
    <input type="radio" name="szin" value="Fekete">
    Fekete </label>
    <br>
    <label>
    <input type="radio" name="szin" value="Fehér">
    Fehér </label>

    Hogyan tudnám változóként kezelni, hogy mit jelölünk ki?

    Select esetén működik a document.getElementById("orszagok").value

    <label for="orszagok">Válasszon országot:</label>
    <select name="orszagok" id="orszagok">
    <option value="HU">Magyarország</option>
    <option value="AT">Ausztria</option>
    <option value="BE">Belgium</option>
    <option value="BG">Bulgária</option>
    </select>

    Vannak olyan esetek, amikor a radio Button jobb lenne.

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

  • martonx
    veterán

    Sziasztok

    Egy furcsaságra lettem figyelmes az egyik általam írt programban.
    Az a baj, hogy nem csak furcsa, hanem bonyodalmakat is okozott, melynek kikerülésére egy újabb változót voltam kénytlen bevezetni.

    A jelenség a következő:

    Adott egy userform,.amin vezérlők és fram-ek is vannak.
    Az egyik (ponosabban kettő) vezérlő change rutinja akkor is lefut amikor azt se nem hívom meg, se nem folyik olyan művelet (legalább is ismereteim szerint) aminek azt meg kellene hívnia.

    A folyamat a következő:
    adott egy gomb a userformon aminek a megnyomásával 3 comboboxban és egy textboxban lévő text visszaíródik az excel tábla megfelelő sorának megfelelelő helyére.
    Ekkor azonban (nem tudom miért) el kezd lefutni egy tök másik combobox (amelynek tudtommal nincs köze az adott eseményekhez) change rutinja.

    Van valakinek valami ötlete, hogy ezt mi okozhatja? Léptetéssel végignéztem, de sehol nem találok olyan sort amely indokolná ennek a changenek a lefutását.

    Várom az ötleteket.

    Üdv, vilag

    excel makróról beszélünk ugye?
    A combobox jó eséllyel rá van kötve egy mezőre.
    Amikor az adatok visszaíródnak, pont az a mező is átíródik, ergo megváltozik a combobox értéke is :)
    De ez csak egy ötlet.

  • vilag
    tag

    Sziasztok

    Egy furcsaságra lettem figyelmes az egyik általam írt programban.
    Az a baj, hogy nem csak furcsa, hanem bonyodalmakat is okozott, melynek kikerülésére egy újabb változót voltam kénytlen bevezetni.

    A jelenség a következő:

    Adott egy userform,.amin vezérlők és fram-ek is vannak.
    Az egyik (ponosabban kettő) vezérlő change rutinja akkor is lefut amikor azt se nem hívom meg, se nem folyik olyan művelet (legalább is ismereteim szerint) aminek azt meg kellene hívnia.

    A folyamat a következő:
    adott egy gomb a userformon aminek a megnyomásával 3 comboboxban és egy textboxban lévő text visszaíródik az excel tábla megfelelő sorának megfelelelő helyére.
    Ekkor azonban (nem tudom miért) el kezd lefutni egy tök másik combobox (amelynek tudtommal nincs köze az adott eseményekhez) change rutinja.

    Van valakinek valami ötlete, hogy ezt mi okozhatja? Léptetéssel végignéztem, de sehol nem találok olyan sort amely indokolná ennek a changenek a lefutását.

    Várom az ötleteket.

    Üdv, vilag

  • wikings2
    őstag

    Ez két problémának tűnik, egyrészt maga az algoritmus, amit metanyelven tanítanak általában, másrészt a programnyelv, konkrétan a VB.NET.

    Korábbi évek érettségi feladatainak megoldása nem segít? doksi.hu?

    A megoldásokat általában tanulmányozás után feldolgozza az agyam, de néha olyan parancsrészleteket használ, hogy magamtól megírni ilyeneket kevésnek érzem magam. Utolsó évre hagyta az infótanár a programozást, és kb nem ért hozzá semmit sem. A már kész megoldásokat szedi le és felkommentelve magyaráz nekünk...
    Sajna nincs meg a rutinom ami nagyon kellene :\

    Néha még azt sem tudom eldönteni hogy mennyi dolgot kell deklarálnom hiszen nem látom előre hogy hova, mit, meddig kell pakolnom egy egyszerű kereséshez vagy sorba tételhez.
    Vagyis menne... de az emelt szintű 9 feladatából az első 5 höz kellett kb 3 óra hogy magamtól megírjam mindenféle segítség nélkül.

    Doksi.hu-n még nem jártam de felnézek, hátha találok valami okosságot :)
    Köszi szépen mindenesetre

  • drkbl
    őstag

    vb parancsokat autódidaktaként tanuljátok, vagy valamilyen logika alapján? :F
    Vannak problémák/feladatok amiknek a megoldásához kő kemény alapozás kéne, de emelt érettségin alig ha lesz annyi időm hogy én leüljek csak úgy tervezgetni :\
    Hogy tudnám valamilyen logika mentén elsajátítani a ciklusokat és azok működési elvét és fontosabb funkcióját? (mondjuk x elemből válogassa ki az y nál nagyobbakat és ezeket listázza vagy ilyesmikre gondolok.)
    Köszi előre is.

    Ez két problémának tűnik, egyrészt maga az algoritmus, amit metanyelven tanítanak általában, másrészt a programnyelv, konkrétan a VB.NET.

    Korábbi évek érettségi feladatainak megoldása nem segít? doksi.hu?

  • martonx
    veterán

    vb parancsokat autódidaktaként tanuljátok, vagy valamilyen logika alapján? :F
    Vannak problémák/feladatok amiknek a megoldásához kő kemény alapozás kéne, de emelt érettségin alig ha lesz annyi időm hogy én leüljek csak úgy tervezgetni :\
    Hogy tudnám valamilyen logika mentén elsajátítani a ciklusokat és azok működési elvét és fontosabb funkcióját? (mondjuk x elemből válogassa ki az y nál nagyobbakat és ezeket listázza vagy ilyesmikre gondolok.)
    Köszi előre is.

    őszintén, nekem van erről diplomám is, de minden hasznos tudást autodidaktaként, könyvekből, internetről szedtem magamra.

  • wikings2
    őstag

    vb parancsokat autódidaktaként tanuljátok, vagy valamilyen logika alapján? :F
    Vannak problémák/feladatok amiknek a megoldásához kő kemény alapozás kéne, de emelt érettségin alig ha lesz annyi időm hogy én leüljek csak úgy tervezgetni :\
    Hogy tudnám valamilyen logika mentén elsajátítani a ciklusokat és azok működési elvét és fontosabb funkcióját? (mondjuk x elemből válogassa ki az y nál nagyobbakat és ezeket listázza vagy ilyesmikre gondolok.)
    Köszi előre is.

  • martonx
    veterán

    Köszönöm az infókat. Létrehoztam már a kapcsolatot az excelem és a grid között, szépen meg is jelenik.
    Belevetem magam a dokumentációknak, lehet-e olyat, hogy online legyen a kapcsolat a grid és az excel között, tehát ha elemet adok az excelhez, akkor az megjelenjen a grid-en is.

    Köszi mégegyszer.

    nyilván nem. De mondjuk x másodpercenként tudod frissíteni a grid--et, vagy kiraksz egy frissít gombot.

  • Messss
    csendes tag

    ODBC-t használhatsz Excel adatforrás eléréséhez. A ListBoxot adatforráshoz kötötted?

    A Gridet használhatod nem adathoz kötötten, akár az oszlopokat is programból létrehozva, sorokat hozzáadva: [link]

    Köszönöm az infókat. Létrehoztam már a kapcsolatot az excelem és a grid között, szépen meg is jelenik.
    Belevetem magam a dokumentációknak, lehet-e olyat, hogy online legyen a kapcsolat a grid és az excel között, tehát ha elemet adok az excelhez, akkor az megjelenjen a grid-en is.

    Köszi mégegyszer.

  • drkbl
    őstag

    Nekem az is megfelel, ha adatforrásként az excel táblámat csatolom, és abból készítek grid-et, de visual studióban nem tudok rájönni, hogy lehetne excel-t adatfottásként használni.

    ODBC-t használhatsz Excel adatforrás eléréséhez. A ListBoxot adatforráshoz kötötted?

    A Gridet használhatod nem adathoz kötötten, akár az oszlopokat is programból létrehozva, sorokat hozzáadva: [link]

  • drkbl
    őstag

    A Cirill betűs támogatás rendben van, az intéző is ezért tudja megjeleníteni. Cirill betűs billentyűzetet is tudtam készíteni. (Ezt a Win7 még akkor rendezte, amikor az Opera böngésző szembetalálta magát egy orosz WEB oldallal.)

    Az MS táblázatkezelőjével és a LibreOffice-el is be tudom másolni a táblázatba ezt a Cirill betűs file nevet.

    Most már biztos vagyok benne, hogy ez a "DOS közeli" szoftverek (VBS, Notepad2) problémája, amivel bizonyára az MS sem óhajt foglalkozni. Nekem sikerült úgy megoldanom, hogy a listázásból kimaradt alkönyvtárakra egyesével lefuttattam a programomat és az eredményeket "hozzászerkesztettem" félbemaradt lista file-hoz. A jövőben kerülni fogom a problémát okozó file nevek használatát.

    A "DOS-közeli" dolgok Unicode támogatását nem tudják megoldani, mert az a meglévő, régebbi programok működését lehetetlenné tenné (Nemzeti ASCII kódolás: 1 karakter 1 byte, Unicode: 1..4 byte).
    Az újabb rendszerhívások már támogatják az Unicode kódolást, ráadásul a több nyelv egyidejű támogatását is.
    Amit ajánlottam, az csak a nemzeti ASCII variálása lett volna.

    A legjobb megoldást választottad, hacsak nem fogod fel a helyzetet bíztatásnak egy modernebb programnyelv megtanulására ;)

  • mezis
    félisten

    A ? a gond, az ugye érvénytelen karakter a fájl/mappanévben. Unicode támogatás nem Unicode nyelvekhez XP+ rendszereken van, Vezérlőpult nyelvi beállítások (W7: Vezérlőpult>Óra,Nyelv és terület>Másik billentyűzet vagy beviteli módszer megadása>Felügyelet fül alsó része), de nem tudom, segítene-e.
    Hibakezelés az On Error és Goto :)

    A Cirill betűs támogatás rendben van, az intéző is ezért tudja megjeleníteni. Cirill betűs billentyűzetet is tudtam készíteni. (Ezt a Win7 még akkor rendezte, amikor az Opera böngésző szembetalálta magát egy orosz WEB oldallal.)

    Az MS táblázatkezelőjével és a LibreOffice-el is be tudom másolni a táblázatba ezt a Cirill betűs file nevet.

    Most már biztos vagyok benne, hogy ez a "DOS közeli" szoftverek (VBS, Notepad2) problémája, amivel bizonyára az MS sem óhajt foglalkozni. Nekem sikerült úgy megoldanom, hogy a listázásból kimaradt alkönyvtárakra egyesével lefuttattam a programomat és az eredményeket "hozzászerkesztettem" félbemaradt lista file-hoz. A jövőben kerülni fogom a problémát okozó file nevek használatát.

  • martonx
    veterán

    Nekem az is megfelel, ha adatforrásként az excel táblámat csatolom, és abból készítek grid-et, de visual studióban nem tudok rájönni, hogy lehetne excel-t adatfottásként használni.

  • Messss
    csendes tag

    ember, felejtsd el a listbox-ot!
    Az excelt mint adatforrás tudod használni.
    Ennél elegánsabb, ha SQL Compact-ot, vagy SQL Express-t használsz adattárolásra, és erre kötöd rá az excelt, és a Forms alkalmazásodat is.
    Sőt még jobb, ha egy makrósított excel-lel oldod meg az egészet.

    Nekem az is megfelel, ha adatforrásként az excel táblámat csatolom, és abból készítek grid-et, de visual studióban nem tudok rájönni, hogy lehetne excel-t adatfottásként használni.

  • martonx
    veterán

    Köszi, akkor ezt benéztem a MultiColumn-al....

    Viszont a grid sem lesz jó nekem, mivel ahogy látom ehhez kellene access, akiknek pedig készülne az alkalmazás, azoknak nincsen.

    Épp ezért én excel-el akartam megoldani. Tehát a Form1_Load-be betölteni az excel-ből az adatokat ebbe a ListBox-ba, az adatok felvitelekor pedig bekerülne excel-be is és a ListBox-ba is. Excel nyilvántartásra is szükség van, így ezt tartom logikusnak. Azonban sehogy sem tudom táblázatos megjelenítésre bírni a ListBox-ot.

    ember, felejtsd el a listbox-ot!
    Az excelt mint adatforrás tudod használni.
    Ennél elegánsabb, ha SQL Compact-ot, vagy SQL Express-t használsz adattárolásra, és erre kötöd rá az excelt, és a Forms alkalmazásodat is.
    Sőt még jobb, ha egy makrósított excel-lel oldod meg az egészet.

  • Messss
    csendes tag

    A multicolumn ListBox nem az, amire gondolsz! Az csak azért többoszlopos, hogy ne kelljen függőlegesen görgetni [1]. Használj Grid-et.

    [1] A multicolumn ListBox places items into as many columns as are needed to make vertical scrolling unnecessary. The user can use the keyboard to navigate to columns that are not currently visible. Set the HorizontalScrollbar property to true to display a horizontal scroll bar that enables the user to scroll to columns that are not currently shown in the visible region of the ListBox. The value of the ColumnWidth property determines the width of each column. [link]

    Köszi, akkor ezt benéztem a MultiColumn-al....

    Viszont a grid sem lesz jó nekem, mivel ahogy látom ehhez kellene access, akiknek pedig készülne az alkalmazás, azoknak nincsen.

    Épp ezért én excel-el akartam megoldani. Tehát a Form1_Load-be betölteni az excel-ből az adatokat ebbe a ListBox-ba, az adatok felvitelekor pedig bekerülne excel-be is és a ListBox-ba is. Excel nyilvántartásra is szükség van, így ezt tartom logikusnak. Azonban sehogy sem tudom táblázatos megjelenítésre bírni a ListBox-ot.

  • drkbl
    őstag

    ÜDV!

    Sztem egy egyszerű kérdésem lenne, azonban sehol nem találom rá a választ, illetve bárhogy próbálom megoldani a problémát, valami hibába ütközök.

    Visual Studio2010-et használok. Egy több oszlopos listbox-ot szeretnék készíteni.

    A listbox beállításainál be is állítottam true értékre a MultiColumn-t.

    Azonban nem tudom, hogy adhatok a ListBox1-hez értékeket úgy, hogy azok táblázatos formában jelenjenek meg.

    A lista oszlopszámát be kell állítanom?

    Előre is köszi!

    A multicolumn ListBox nem az, amire gondolsz! Az csak azért többoszlopos, hogy ne kelljen függőlegesen görgetni [1]. Használj Grid-et.

    [1] A multicolumn ListBox places items into as many columns as are needed to make vertical scrolling unnecessary. The user can use the keyboard to navigate to columns that are not currently visible. Set the HorizontalScrollbar property to true to display a horizontal scroll bar that enables the user to scroll to columns that are not currently shown in the visible region of the ListBox. The value of the ColumnWidth property determines the width of each column. [link]

  • Messss
    csendes tag

    ÜDV!

    Sztem egy egyszerű kérdésem lenne, azonban sehol nem találom rá a választ, illetve bárhogy próbálom megoldani a problémát, valami hibába ütközök.

    Visual Studio2010-et használok. Egy több oszlopos listbox-ot szeretnék készíteni.

    A listbox beállításainál be is állítottam true értékre a MultiColumn-t.

    Azonban nem tudom, hogy adhatok a ListBox1-hez értékeket úgy, hogy azok táblázatos formában jelenjenek meg.

    A lista oszlopszámát be kell állítanom?

    Előre is köszi!

  • drkbl
    őstag

    Még mielőtt bármi bekerülhetne a file névbe, ledöglik. Az alkönyvtárban a legutolsó helyen van a névsorban a Cirill betűs file. Az összes többi file neve bekerül a listába.

    (MsgBox esetén is file-ba kerül egy ugyanolyan lista. Valószínű, hogy csiki/csuki-t kellene játszanom a lista file-lal, de nem hiszem, hogy a monitorra más karakter, illetve egyáltalán kerülne valami is a Cirill betűkből.)

    A DOS dir parancsa a cirill betűk helyett ? jeleket tesz. Most vettem észre, hogy a file nevének a vége latin karakterekből áll ! A DOS dir ezeket helyesen jeleníti meg a kérdőjelek után. Ugyanígy jártam, amikor a Win vágólapról a Notepad2-vel szerkesztett szövegfile-ba "kézzel" másoltam be a cirill betűs file nevet

    Hibakezelést hol lehet nézni ?

    A ? a gond, az ugye érvénytelen karakter a fájl/mappanévben. Unicode támogatás nem Unicode nyelvekhez XP+ rendszereken van, Vezérlőpult nyelvi beállítások (W7: Vezérlőpult>Óra,Nyelv és terület>Másik billentyűzet vagy beviteli módszer megadása>Felügyelet fül alsó része), de nem tudom, segítene-e.
    Hibakezelés az On Error és Goto :)

  • mezis
    félisten

    Sajnos a konzolablak ASCII valami, pl. magyar Windowson 852-es kibővített kódtábla, így a Unicode->nemzeti ASCII konverzió során bármi kerülhet a fájlnévbe.
    Segíthet, ha dir /s paranccsal kilistáztatod az adott könyvtárakat, és megnézed, mivé lesz a cirill karakter.
    Ha ott jónak tűnik, ideiglenesen cseréld le a rekurzív
    listFiles objSubFolder.path
    sort
    MsgBox objSubFolder.path
    sorra, és nézd meg, mi jelenik meg.

    Bónusz: nézd át a hibakezelést, és egy hibaüzenet megjelenítésével lépj át a problémás alkönyvtárakon :)

    Még mielőtt bármi bekerülhetne a file névbe, ledöglik. Az alkönyvtárban a legutolsó helyen van a névsorban a Cirill betűs file. Az összes többi file neve bekerül a listába.

    (MsgBox esetén is file-ba kerül egy ugyanolyan lista. Valószínű, hogy csiki/csuki-t kellene játszanom a lista file-lal, de nem hiszem, hogy a monitorra más karakter, illetve egyáltalán kerülne valami is a Cirill betűkből.)

    A DOS dir parancsa a cirill betűk helyett ? jeleket tesz. Most vettem észre, hogy a file nevének a vége latin karakterekből áll ! A DOS dir ezeket helyesen jeleníti meg a kérdőjelek után. Ugyanígy jártam, amikor a Win vágólapról a Notepad2-vel szerkesztett szövegfile-ba "kézzel" másoltam be a cirill betűs file nevet

    Hibakezelést hol lehet nézni ?

  • drkbl
    őstag

    Bocs, most jöttem rá, hogy lehet programkódot is beilleszteni:

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

    Sajnos a konzolablak ASCII valami, pl. magyar Windowson 852-es kibővített kódtábla, így a Unicode->nemzeti ASCII konverzió során bármi kerülhet a fájlnévbe.
    Segíthet, ha dir /s paranccsal kilistáztatod az adott könyvtárakat, és megnézed, mivé lesz a cirill karakter.
    Ha ott jónak tűnik, ideiglenesen cseréld le a rekurzív
    listFiles objSubFolder.path
    sort
    MsgBox objSubFolder.path
    sorra, és nézd meg, mi jelenik meg.

    Bónusz: nézd át a hibakezelést, és egy hibaüzenet megjelenítésével lépj át a problémás alkönyvtárakon :)

  • mezis
    félisten

    Üdv.!

    Dupla kattintással remekül működik a VBS script programom, amely CD, DVD, vagy bármelyik alkönyvtár nyilvántartását írja ki egy .csv file-ba. Mindaddig, amíg nincs abban az alkönyvtárban egy cirill betűs file név (РадиоКот __ Радиометрический дозиметр GreenRay.mht).

    A hibaüzenet ez:

    Kivédhető ez valahogy ?

    (A vastagon kiemelt utasításba döglik bele.)

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

    Bocs, most jöttem rá, hogy lehet programkódot is beilleszteni:

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

  • mezis
    félisten

    Üdv.!

    Dupla kattintással remekül működik a VBS script programom, amely CD, DVD, vagy bármelyik alkönyvtár nyilvántartását írja ki egy .csv file-ba. Mindaddig, amíg nincs abban az alkönyvtárban egy cirill betűs file név (РадиоКот __ Радиометрический дозиметр GreenRay.mht).

    A hibaüzenet ez:

    Kivédhető ez valahogy ?

    (A vastagon kiemelt utasításba döglik bele.)

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

  • martonx
    veterán

    Kinézete alapján fogtam rá, hogy objektum orientált. Vagyis számomra érthetetlenül túlkomplikált. :F Könyvhöz még nem jutottam hozzá, internetről próbáltam beletanulni a VBS programozásba. A legzavarosabb számomra az, hogy meddig VBS és honnan Visual Basic.
    Az MS-nek a honlapján folyton összezavarodtak (csak nekem ? :U ) az információk, az előbb még egyértelműen VBS magyarázat volt előttem, aztán egy óvatlan katintás után már lehet, hogy C#.)
    (Ja, elfelejtettem, hogy Commodore 64-en is írtam Basic nyelven programot. Innen gondoltam, hogy csak fog ez menni valahogy.)
    Meg arra gondoltam, hogy a makro programokról is illő lenne már egy keveset tudnom, ha egyszer már a PDP-8 TECO macrojában annak idején teljesen otthon voltam.

    A .hta -hoz jól gondolom, hogy a HTML-en keresztül vezet egy bizonyára göröngyös út ?
    (A WEB lap készítésbe is bele kellene már csapni, kezd ciki lenni, lassan már a nagycsoportosok is csinálják az oviban.)

    Átolvastam már néhány könyvet Java, C, Webvilág) a mostanában elterjedt nyelvekről, sajnos azt tapasztaltam, hogy a Lőcs Gy. Fortran IV, könyvével ellentétben egyik sem egy komplett leírás, hanem vagy az elejéből, vagy a "magasabb" részéből ír le valamennyit.
    A Clipper5-öt is rongyosra olvastam, miközben folyamatosan fejlesztettem a programjaimat, de ott is tapasztaltam, hogy nem mindig komplett egy utasítás, fv. leírása.

    tanuláshoz (újra tanuláshoz) inkább a VB.Net-et javaslom, nem pedig a kifutóban lévő VBScriptet. HTML-t is érdemes megtanulni, vannak hozzá igen jó könyvek. Másrészt 2012-t írunk, az internet tele van jobbnál jobb oktató anyagokkal.

  • mezis
    félisten

    ember, ha írtad volna, hogy dupla kattintással futtatod, azzal sokat segítettél volna. A megoldásom jó, csak fel sem tételeztem, hogy nem cscript-tel futtatod a VBS-ed.

    Kibővítettem a programomat WScript.echo "bármi" utasítással.
    Futtattam DOS ablakban, cscript.exe -vel, valóban írogat a DOS ablakba, várakozás nélkül.

  • mezis
    félisten

    A VbScript nem objektum orientált. Vagy ez poén akart lenni? Mert a hsz-edről végig nem tudtam eldönteni, hogy ez most komoly, vagy poén volt.
    Nem sértődtem meg, nem kell bocsánatot kérned.
    Windowsban nem komplikált képernyőre adatokat kiíratni, vbscriptben mondhatjuk komplikálnak, mert egyszerűen nem erre készült, vagy aki mégis erre akarja használni, az cscript-tel futtatja :K
    Ha meg dupla kattintással akarod használni, akkor .hta-ként csináld meg a vbscriptedet, és akkor ismét könnyű lesz az adatokat kiíratni.

    Kinézete alapján fogtam rá, hogy objektum orientált. Vagyis számomra érthetetlenül túlkomplikált. :F Könyvhöz még nem jutottam hozzá, internetről próbáltam beletanulni a VBS programozásba. A legzavarosabb számomra az, hogy meddig VBS és honnan Visual Basic.
    Az MS-nek a honlapján folyton összezavarodtak (csak nekem ? :U ) az információk, az előbb még egyértelműen VBS magyarázat volt előttem, aztán egy óvatlan katintás után már lehet, hogy C#.)
    (Ja, elfelejtettem, hogy Commodore 64-en is írtam Basic nyelven programot. Innen gondoltam, hogy csak fog ez menni valahogy.)
    Meg arra gondoltam, hogy a makro programokról is illő lenne már egy keveset tudnom, ha egyszer már a PDP-8 TECO macrojában annak idején teljesen otthon voltam.

    A .hta -hoz jól gondolom, hogy a HTML-en keresztül vezet egy bizonyára göröngyös út ?
    (A WEB lap készítésbe is bele kellene már csapni, kezd ciki lenni, lassan már a nagycsoportosok is csinálják az oviban.)

    Átolvastam már néhány könyvet Java, C, Webvilág) a mostanában elterjedt nyelvekről, sajnos azt tapasztaltam, hogy a Lőcs Gy. Fortran IV, könyvével ellentétben egyik sem egy komplett leírás, hanem vagy az elejéből, vagy a "magasabb" részéből ír le valamennyit.
    A Clipper5-öt is rongyosra olvastam, miközben folyamatosan fejlesztettem a programjaimat, de ott is tapasztaltam, hogy nem mindig komplett egy utasítás, fv. leírása.

  • martonx
    veterán

    Bocs ! :o

    Akkor most inkább gyorsan bevallom, hogy Algol-68, Fortran IV -el kezdtem a programírást, script nyelvnek a Focal meg a TECO-macro volt. A PC-ken meg a FoxBase, Clipper volt számomra elérhető. Ez utóbbiról (illetve az MS-DOS ]dir parancsáról) is csak azért váltottam egy ilyen hiper/szuper csilivilire, mert a Windows ékezetes karakterei nem stimmelnek az MS-DOS karaktereivel

    Azon meglepődtem, hogy milyen komplikált Windowsban megoldani a képernyőre való kiírás várakozás nélkül. (Gondoltam ott marad nyitva az ablak, majd becsukja akit zavar.)

    Az programot (és elődjeit) CD, DVD tartalmak nyilvántartására használom. Egy alkönyvtárban gyűjtöm az ilyen file-okat, melyeknek a neve azonos CD, DVD nevével.
    Keresésre az intéző keresőjét használom. Ez egy újabb, remek lehetőség, hogy a csv file-t meg tudja nyitni pl. táblázat kezelő is.

    A dupla kattintásos indítás külön jól jön, ha az ismerősöm is használni fogja.

    Tegnap már próbálgattam a cscript.exe -vel való futtatást, a jelenlegi verzió ugyanúgy fut, sajnos az echo utasítást már eltüntettem belőle. Késő volt és már fáradt voltam. Nagyon kimerít engem ez az objektum orientált programozás. :F :U

    Köszönöm a tanácsokat ! :R

    A VbScript nem objektum orientált. Vagy ez poén akart lenni? Mert a hsz-edről végig nem tudtam eldönteni, hogy ez most komoly, vagy poén volt.
    Nem sértődtem meg, nem kell bocsánatot kérned.
    Windowsban nem komplikált képernyőre adatokat kiíratni, vbscriptben mondhatjuk komplikálnak, mert egyszerűen nem erre készült, vagy aki mégis erre akarja használni, az cscript-tel futtatja :K
    Ha meg dupla kattintással akarod használni, akkor .hta-ként csináld meg a vbscriptedet, és akkor ismét könnyű lesz az adatokat kiíratni.

  • mezis
    félisten

    ember, ha írtad volna, hogy dupla kattintással futtatod, azzal sokat segítettél volna. A megoldásom jó, csak fel sem tételeztem, hogy nem cscript-tel futtatod a VBS-ed.

    Bocs ! :o

    Akkor most inkább gyorsan bevallom, hogy Algol-68, Fortran IV -el kezdtem a programírást, script nyelvnek a Focal meg a TECO-macro volt. A PC-ken meg a FoxBase, Clipper volt számomra elérhető. Ez utóbbiról (illetve az MS-DOS ]dir parancsáról) is csak azért váltottam egy ilyen hiper/szuper csilivilire, mert a Windows ékezetes karakterei nem stimmelnek az MS-DOS karaktereivel

    Azon meglepődtem, hogy milyen komplikált Windowsban megoldani a képernyőre való kiírás várakozás nélkül. (Gondoltam ott marad nyitva az ablak, majd becsukja akit zavar.)

    Az programot (és elődjeit) CD, DVD tartalmak nyilvántartására használom. Egy alkönyvtárban gyűjtöm az ilyen file-okat, melyeknek a neve azonos CD, DVD nevével.
    Keresésre az intéző keresőjét használom. Ez egy újabb, remek lehetőség, hogy a csv file-t meg tudja nyitni pl. táblázat kezelő is.

    A dupla kattintásos indítás külön jól jön, ha az ismerősöm is használni fogja.

    Tegnap már próbálgattam a cscript.exe -vel való futtatást, a jelenlegi verzió ugyanúgy fut, sajnos az echo utasítást már eltüntettem belőle. Késő volt és már fáradt voltam. Nagyon kimerít engem ez az objektum orientált programozás. :F :U

    Köszönöm a tanácsokat ! :R

  • martonx
    veterán

    Nem válogattam a VBS program futtatójában, dupla klikkre a WScript.exe-t indította el.
    ArchElf segítségével megoldottam a kijelzést. Legközelebb kipróbálom a CSript-el.

    ember, ha írtad volna, hogy dupla kattintással futtatod, azzal sokat segítettél volna. A megoldásom jó, csak fel sem tételeztem, hogy nem cscript-tel futtatod a VBS-ed.

  • mezis
    félisten

    Nem mindegy, melyik hosttal futtatod a vbscript-et, WScript-el vagy CScript-el!

    Az echo eljárás doksija szerint wscript hosttal dialógusablak, cscript-el futtatva egy sort ad vissza a konzolablakba.

    Nem válogattam a VBS program futtatójában, dupla klikkre a WScript.exe-t indította el.
    ArchElf segítségével megoldottam a kijelzést. Legközelebb kipróbálom a CSript-el.

  • mezis
    félisten

    Nyiss egy IE ablakot és abban közöld a státuszt. Ha lefut az alkalmazás az ablakot be is tudod zárni: [link]

    AE

    Köszönöm ! :R

    Így már sikerült megoldani, hogy ne a billentyűzet LED-jeinek a villogása jelezze a VBS program tevékenységét.

  • drkbl
    őstag

    Sajnos azt is kiírja, amit nem szeretnék: "OK", és nem találom, hogyan tudnám ezt elhagyatni vele.

    Nem mindegy, melyik hosttal futtatod a vbscript-et, WScript-el vagy CScript-el!

    Az echo eljárás doksija szerint wscript hosttal dialógusablak, cscript-el futtatva egy sort ad vissza a konzolablakba.

  • ArchElf
    addikt

    Sajnos azt is kiírja, amit nem szeretnék: "OK", és nem találom, hogyan tudnám ezt elhagyatni vele.

    Nyiss egy IE ablakot és abban közöld a státuszt. Ha lefut az alkalmazás az ablakot be is tudod zárni: [link]

    AE

  • mezis
    félisten

    VBScript-nél a wscript.echo parancsot javaslom használni. Ez a konzol ablakba kiírja amit ki akarsz iratni.

    wscript.echo "hello world"

    Sajnos azt is kiírja, amit nem szeretnék: "OK", és nem találom, hogyan tudnám ezt elhagyatni vele.

  • martonx
    veterán

    Üdv.!

    Szeretnék a monitoron információt megjeleníteni a futó VB script program állapotáról. Amit eddig találtam ,az a MsgBox strFolder, 64 függvény, aminél sajnos legalább az "OK" gombot nem tudom elhagyni, ezzel viszont a program várakozik amíg nem klikkelek.

    Oda-vissza végignéztem az összes funkciót, lehetséges paramétereit, file-ba tudnék írni, de a monitorra nem. (Igaziból a dobozra sem lenne szükségem, csak egy sorra, amit állandóan felülírhatok az aktuálisan feldolgozott alkönyvtár nevével, vagy egy sorszámmal, aktuális idővel...)

    A VB Script programot a CHIP magazin 2008 júliusi számából másoltam ki, csekély módosítással a DVD olvasóban lévő DVD file-jait listázza egy csv file-ba. Ezt a kijelzést azért szeretném beletenni, mert igen lassan fut, a DVD olvasó LED-je se jelez vissza és jó lenne, ha információt kapnék arról, hogy rendben dolgozik.

    VBScript-nél a wscript.echo parancsot javaslom használni. Ez a konzol ablakba kiírja amit ki akarsz iratni.

    wscript.echo "hello world"

  • ArchElf
    addikt

    Üdv.!

    Szeretnék a monitoron információt megjeleníteni a futó VB script program állapotáról. Amit eddig találtam ,az a MsgBox strFolder, 64 függvény, aminél sajnos legalább az "OK" gombot nem tudom elhagyni, ezzel viszont a program várakozik amíg nem klikkelek.

    Oda-vissza végignéztem az összes funkciót, lehetséges paramétereit, file-ba tudnék írni, de a monitorra nem. (Igaziból a dobozra sem lenne szükségem, csak egy sorra, amit állandóan felülírhatok az aktuálisan feldolgozott alkönyvtár nevével, vagy egy sorszámmal, aktuális idővel...)

    A VB Script programot a CHIP magazin 2008 júliusi számából másoltam ki, csekély módosítással a DVD olvasóban lévő DVD file-jait listázza egy csv file-ba. Ezt a kijelzést azért szeretném beletenni, mert igen lassan fut, a DVD olvasó LED-je se jelez vissza és jó lenne, ha információt kapnék arról, hogy rendben dolgozik.

    Kell csinálnod egy új formot, amit megjelenítesz a Show paranccsal, és az azon elhelyezett kontrolloknak már tudod az értékét módosítani (textboxnál szöveg, progressbar-nál érték, stb...)
    MsgBox kifejezetten egyszeri (hiba-)üzenetek megjelenítésére való.

    AE

  • mezis
    félisten

    Üdv.!

    Szeretnék a monitoron információt megjeleníteni a futó VB script program állapotáról. Amit eddig találtam ,az a MsgBox strFolder, 64 függvény, aminél sajnos legalább az "OK" gombot nem tudom elhagyni, ezzel viszont a program várakozik amíg nem klikkelek.

    Oda-vissza végignéztem az összes funkciót, lehetséges paramétereit, file-ba tudnék írni, de a monitorra nem. (Igaziból a dobozra sem lenne szükségem, csak egy sorra, amit állandóan felülírhatok az aktuálisan feldolgozott alkönyvtár nevével, vagy egy sorszámmal, aktuális idővel...)

    A VB Script programot a CHIP magazin 2008 júliusi számából másoltam ki, csekély módosítással a DVD olvasóban lévő DVD file-jait listázza egy csv file-ba. Ezt a kijelzést azért szeretném beletenni, mert igen lassan fut, a DVD olvasó LED-je se jelez vissza és jó lenne, ha információt kapnék arról, hogy rendben dolgozik.

  • martonx
    veterán

    Sziasztok!

    Ismét egy makró kérdéssel fordulok hozzátok. Olyan programra lenne szükségem ami egy adott oszlop adatai alapján sorokat szúr be az azonos adatok után.

    Elvárás, hogy belehessen állítani, hogy melyik oszlop adatai szerint szúrja be a sorokat a táblázatba.

    pl.: legyen egy A, B és C oszlopból álló táblázatunk, ez

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32
    4 - d - 12
    5 - d - 21
    6 - v - 45
    7 - v - 5
    8 - b - 333

    ebből a táblázatból ezt szeretném makróval kapni:

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32

    4 - d - 12
    5 - d - 21

    6 - v - 45
    7 - v - 5

    8 - b - 333

    Valakinek erre van megoldás, programja?

    Köszönöm,

    Erik

    Public Sub sorolo()
    sor = 1
    While Cells(sor, 2) <> ""
    If Cells(sor, 2) <> Cells(sor + 1, 2) Then
    Rows(sor + 1 & ":" & sor + 1).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    sor = sor + 1
    End If
    sor = sor + 1
    Wend
    End Sub

  • martonx
    veterán

    Sziasztok!

    Ismét egy makró kérdéssel fordulok hozzátok. Olyan programra lenne szükségem ami egy adott oszlop adatai alapján sorokat szúr be az azonos adatok után.

    Elvárás, hogy belehessen állítani, hogy melyik oszlop adatai szerint szúrja be a sorokat a táblázatba.

    pl.: legyen egy A, B és C oszlopból álló táblázatunk, ez

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32
    4 - d - 12
    5 - d - 21
    6 - v - 45
    7 - v - 5
    8 - b - 333

    ebből a táblázatból ezt szeretném makróval kapni:

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32

    4 - d - 12
    5 - d - 21

    6 - v - 45
    7 - v - 5

    8 - b - 333

    Valakinek erre van megoldás, programja?

    Köszönöm,

    Erik

    Szia!

    Ez egyszerűbb, mint a múltkori problémád. Este rászánom azt a pár percet, és megírom azt a pár sor kódot, ha addig nem segít más.

  • erich85T
    csendes tag

    Sziasztok!

    Ismét egy makró kérdéssel fordulok hozzátok. Olyan programra lenne szükségem ami egy adott oszlop adatai alapján sorokat szúr be az azonos adatok után.

    Elvárás, hogy belehessen állítani, hogy melyik oszlop adatai szerint szúrja be a sorokat a táblázatba.

    pl.: legyen egy A, B és C oszlopból álló táblázatunk, ez

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32
    4 - d - 12
    5 - d - 21
    6 - v - 45
    7 - v - 5
    8 - b - 333

    ebből a táblázatból ezt szeretném makróval kapni:

    A - B - C
    1 - a - 32
    2 - a - 43
    3 - a - 32

    4 - d - 12
    5 - d - 21

    6 - v - 45
    7 - v - 5

    8 - b - 333

    Valakinek erre van megoldás, programja?

    Köszönöm,

    Erik

  • AzO
    csendes tag

    Sziasztok!

    Excel 2003-ban szerettem volna írni egy VBA függvényt, ami egy text file-ból kiolvassa a benne található sql utasításokat és a "go" kulcsszavak mentén szétvágja őket és egy tömbbe teszi az önálló sql utasításokat.

    Public Function OpenTextFileToString(strFile As String) As String

    Dim hFile As Long
    Dim OpenTextFileToString2 As String


    hFile = FreeFile 'FreeFile: the next file number that is not already in use
    Open strFile For Input As #hFile
    OpenTextFileToString2 = Input$(LOF(hFile), hFile) 'LOF = Length Of File
    Close #hFile


    OpenTextFileToString = Split(OpenTextFileToString2, vbCrLf & "go" & vbCrLf)

    Debug.Print OpenTextFileToString(0)

    End Function

    Ez hibát ad nekem (type mismatch error).
    Én úgy tudtam, hogy függvény eredménye lehet string array.

    Próbálkoztam olyannal is, hogy variant-nak definiálok mindent, és a végén próbálom átkonvertálni string-gé a tömb elemeit:

    Public Function OpenTextFileToString(strFile As String) As String

    Dim hFile As Long
    Dim OpenTextFileToString2 As String

    hFile = FreeFile 'FreeFile: the next file number that is not already in use
    Open strFile For Input As #hFile
    OpenTextFileToString2 = Input$(LOF(hFile), hFile) 'LOF = Length Of File
    Close #hFile

    Dim OpenTextFileToString3 As Variant

    OpenTextFileToString3 = Split(OpenTextFileToString2, vbCrLf & "go" & vbCrLf)

    Debug.Print OpenTextFileToString3(0)


    Dim i As Integer
    Dim OpenTextFileToString4() As String

    For i = 0 To UBound(OpenTextFileToString3)

    OpenTextFileToString4(i) = CStr(OpenTextFileToString3(i))

    Next

    OpenTextFileToString = OpenTextFileToString4()

    Debug.Print OpenTextFileToString(0)

    End Function

    Ez már végső kínomban született, de ez sem futott le.

    Előre is köszi a segítséget!

    Sikerult. A vicc az, hogy nem volt hibas a kod, csak az immediate window-ba nem tudta kiirni.. Tehat masik sub-bol meghivva mukodott a fuggveny.

  • kisi
    aktív tag

    VBA-ban sem kell a call. Persze lehet használni, csak minek?

    Sziasztok!

    Amikor készítettem, hibaüzenetet adott, ha nem volt előtte Call. Kis piros felkiáltójel, mint értelmetlen utasítás.
    Ami érdekes, az az , hogy a help, és a neten lévő források szerint is jól írtam.
    Most viszont próbaként kitörölve a Call utasítást is tökéletesen működik..

  • AzO
    csendes tag

    Sziasztok!

    Excel 2003-ban szerettem volna írni egy VBA függvényt, ami egy text file-ból kiolvassa a benne található sql utasításokat és a "go" kulcsszavak mentén szétvágja őket és egy tömbbe teszi az önálló sql utasításokat.

    Public Function OpenTextFileToString(strFile As String) As String

    Dim hFile As Long
    Dim OpenTextFileToString2 As String


    hFile = FreeFile 'FreeFile: the next file number that is not already in use
    Open strFile For Input As #hFile
    OpenTextFileToString2 = Input$(LOF(hFile), hFile) 'LOF = Length Of File
    Close #hFile


    OpenTextFileToString = Split(OpenTextFileToString2, vbCrLf & "go" & vbCrLf)

    Debug.Print OpenTextFileToString(0)

    End Function

    Ez hibát ad nekem (type mismatch error).
    Én úgy tudtam, hogy függvény eredménye lehet string array.

    Próbálkoztam olyannal is, hogy variant-nak definiálok mindent, és a végén próbálom átkonvertálni string-gé a tömb elemeit:

    Public Function OpenTextFileToString(strFile As String) As String

    Dim hFile As Long
    Dim OpenTextFileToString2 As String

    hFile = FreeFile 'FreeFile: the next file number that is not already in use
    Open strFile For Input As #hFile
    OpenTextFileToString2 = Input$(LOF(hFile), hFile) 'LOF = Length Of File
    Close #hFile

    Dim OpenTextFileToString3 As Variant

    OpenTextFileToString3 = Split(OpenTextFileToString2, vbCrLf & "go" & vbCrLf)

    Debug.Print OpenTextFileToString3(0)


    Dim i As Integer
    Dim OpenTextFileToString4() As String

    For i = 0 To UBound(OpenTextFileToString3)

    OpenTextFileToString4(i) = CStr(OpenTextFileToString3(i))

    Next

    OpenTextFileToString = OpenTextFileToString4()

    Debug.Print OpenTextFileToString(0)

    End Function

    Ez már végső kínomban született, de ez sem futott le.

    Előre is köszi a segítséget!

  • ArchElf
    addikt

    Sziasztok! Kezdő-középhaladó programozó vagyok, és az alábbi témában elkadtam:

    Írtam egy progit (most mindegy, hogy mit), amelyet szeretnék serial kóddal védeni. Egy hasonló progiban láttam egy olyan megoldást, hogy a telepítés utáni első indításkor a progi kiír egy kulcsot, majd ezt megküldve a progi készítőjének visszakapunk egy aktiváló kódot. Ezt beírva a megfelelő helyre lesz teljes értékű a progi.

    Nekem nagyon tetszik ez a megoldás, én is ezt szeretném megcsinálni, csak érdekelne az elv, tehát nem a konkrét leprogramozás, hanem az elv.

    Az első indításkor egy ilyen formárumú kulcs jön létre: QFQQYT-SBKBRI-3-CABBAC. Az érdekessége az, hogy ha az aktiválás után a windowst újra telepítik, illetve a progi is ismételten felkerül az újratelepített win alá, akkor is ugyanezt a kulcsot készíti a progi az első indításkor, tehát az egyszer már aktivált progi ugyanarra a gépre ismételten teljesen működővé tehető, viszont másik gépre történő telepítéskor már természetesen más kulcs készül.
    Ez a kulcs minek (esetleg hardvernek?) lehet a sorozatszáma, hiszen ránézésre nem HDD serial, illetve nem is VSN (partíció kötetszám).

    Köszi a válaszokat.

    Ui.: Azért ebbe a topikba írtam, mert az eredeti progi is Visual Basic-ben készült.

    Általában az elérhető HW/SW sorozatszámokból készít egy hash-t amit valami olvasható formába alakít (mint amit te is írtál), az lesz a kulcs és abból a kulcsból generálja a cég válaszkulcsot.
    Nem közvetlenül használja fel az elérhető hw/sw kulcsokat, hiszen akkor túl könnyű dolga lenne a próbálkozóknak.

    AE

  • czizso
    csendes tag

    Sziasztok! Kezdő-középhaladó programozó vagyok, és az alábbi témában elkadtam:

    Írtam egy progit (most mindegy, hogy mit), amelyet szeretnék serial kóddal védeni. Egy hasonló progiban láttam egy olyan megoldást, hogy a telepítés utáni első indításkor a progi kiír egy kulcsot, majd ezt megküldve a progi készítőjének visszakapunk egy aktiváló kódot. Ezt beírva a megfelelő helyre lesz teljes értékű a progi.

    Nekem nagyon tetszik ez a megoldás, én is ezt szeretném megcsinálni, csak érdekelne az elv, tehát nem a konkrét leprogramozás, hanem az elv.

    Az első indításkor egy ilyen formárumú kulcs jön létre: QFQQYT-SBKBRI-3-CABBAC. Az érdekessége az, hogy ha az aktiválás után a windowst újra telepítik, illetve a progi is ismételten felkerül az újratelepített win alá, akkor is ugyanezt a kulcsot készíti a progi az első indításkor, tehát az egyszer már aktivált progi ugyanarra a gépre ismételten teljesen működővé tehető, viszont másik gépre történő telepítéskor már természetesen más kulcs készül.
    Ez a kulcs minek (esetleg hardvernek?) lehet a sorozatszáma, hiszen ránézésre nem HDD serial, illetve nem is VSN (partíció kötetszám).

    Köszi a válaszokat.

    Ui.: Azért ebbe a topikba írtam, mert az eredeti progi is Visual Basic-ben készült.

  • martonx
    veterán

    Szerintem ezért kellett neki, mert Call nélkül nem lehet zárójellel meghívni a metódusokat :DDD
    (amúgy lehet, hogy VBA nem VB.NET)

    AE

    VBA-ban sem kell a call. Persze lehet használni, csak minek?

  • ArchElf
    addikt

    a Call minek?
    VB.Net enélkül is érti.

    Szerintem ezért kellett neki, mert Call nélkül nem lehet zárójellel meghívni a metódusokat :DDD
    (amúgy lehet, hogy VBA nem VB.NET)

    AE

  • martonx
    veterán

    Szia !

    A formból új form nyitása végül így sikerült működőre:
    Dim felugro As Form
    felugro = Form2 (nem mindíg ugyanaz kell feljöjjön..)
    Call felugro.Show()

    a Call minek?
    VB.Net enélkül is érti.

  • kisi
    aktív tag

    eredmeny() = MsgBoxResult.Ok ez tuti hülyeség. Nem 100%, hogy jó megoldás, mert jóideje nem VB.Net-ezek, de
    If MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel) = = DialogResult.OK Then Close()

    Így már a feltétel jó lesz, a Close rémlik, hogy jó, bár lehet, hogy Exit kell helyette? Close az aktuálisan nyitott form-ot zárja, ha ez az egy volt csak nyitva, akkor egyenértékű az Exit-tel.

    Új ablakot pedig valami ilyesmivel tudsz létrehozni

    dim formuj as form - ide majd a VS-ben megcsinált formod neve fog kelleni a form helyett
    majd formuj.Show-val jön fel az ablak.

    Szia !

    A formból új form nyitása végül így sikerült működőre:
    Dim felugro As Form
    felugro = Form2 (nem mindíg ugyanaz kell feljöjjön..)
    Call felugro.Show()

  • szia!

    A margókat felejtsd el. Olyan általános szabályban gondolkozz, hogy pl. a szöveg minden 72-dik karakterénél beszúr egy sortörést.

    Az nem jó, mert nem monoscape a szöveg... Láttam már valamikor, hogy y margót is lehet figyelni, szóval elvileg megoldható...

  • martonx
    veterán

    Sziasztok, Word-höz lenne szükségem egy VB scriptre. Túl régen programoztam már ahhoz, hogy belevessem magam egy ismeretlen nyelvbe. Delphiben még emlékeznék rá, de egy új szövegszerkesztőt összedobni csak ezért az macera volna, míg gondolom, VB-vel pár sor.

    A dolog egyszerű (vagy nem?): van egy folyamatos szöveg, amibe minden margónál sortörést kellene bevinni, majd minden létrehozott sor elejére meghatározott számú NBSP-t illeszteni.

    Lényegében ide a Ph!-ra kellene, egy közvetett sufnituning spoiler-tagnek, a Code taggel kombinálva. Manuálisan kicsit kellemetlen hosszabb szöveg esetén.

    Kösz!

    szia!

    A margókat felejtsd el. Olyan általános szabályban gondolkozz, hogy pl. a szöveg minden 72-dik karakterénél beszúr egy sortörést.

  • Sziasztok, Word-höz lenne szükségem egy VB scriptre. Túl régen programoztam már ahhoz, hogy belevessem magam egy ismeretlen nyelvbe. Delphiben még emlékeznék rá, de egy új szövegszerkesztőt összedobni csak ezért az macera volna, míg gondolom, VB-vel pár sor.

    A dolog egyszerű (vagy nem?): van egy folyamatos szöveg, amibe minden margónál sortörést kellene bevinni, majd minden létrehozott sor elejére meghatározott számú NBSP-t illeszteni.

    Lényegében ide a Ph!-ra kellene, egy közvetett sufnituning spoiler-tagnek, a Code taggel kombinálva. Manuálisan kicsit kellemetlen hosszabb szöveg esetén.

    Kösz!

  • martonx
    veterán

    Sziasztok!
    Nem igazán olvasgattam bele a témába.
    Szeretném megkérdezi, hogy van-e valami olyasmi oldal lehetőleg magyar, ahol összevannak szedve a különböző parancsok és a hozzájuk tartozó jelentések/ rövid magyarázatok is akár?
    Most fogok emeltezni infóból, de sajnos ez a része kevésbé megy. Kevésnek tartom az időd rá, hogy ott helyben kitaláljak különféle ciklusokat és eljárásokat, hogy lemenjen frankón a program amit kérnek, de valószinüleg sokat segítene rajtam egy ismertető, hogy mégis ha már meg van a terv a fejemben, akkor ne a megvalósítással legyen a baj. :)
    Köszi szépen előre is.!

    Ui: szívesen fogadnám a segítségeket olyanoktól akik rá érnek és szívesen segítenének 1-2 érettségi feladat megértéséhez :D

    MSDN-nek hívják, csak nem magyar nyelvű. :Y

  • wikings2
    őstag

    Sziasztok!
    Nem igazán olvasgattam bele a témába.
    Szeretném megkérdezi, hogy van-e valami olyasmi oldal lehetőleg magyar, ahol összevannak szedve a különböző parancsok és a hozzájuk tartozó jelentések/ rövid magyarázatok is akár?
    Most fogok emeltezni infóból, de sajnos ez a része kevésbé megy. Kevésnek tartom az időd rá, hogy ott helyben kitaláljak különféle ciklusokat és eljárásokat, hogy lemenjen frankón a program amit kérnek, de valószinüleg sokat segítene rajtam egy ismertető, hogy mégis ha már meg van a terv a fejemben, akkor ne a megvalósítással legyen a baj. :)
    Köszi szépen előre is.!

    Ui: szívesen fogadnám a segítségeket olyanoktól akik rá érnek és szívesen segítenének 1-2 érettségi feladat megértéséhez :D

  • kisi
    aktív tag

    Köszönöm szépen a válaszokat !

    Az első kérdésre tökéletesen sikerült a válaszok alapján megoldást találni, a felugró form kérdésével még küzdök.

  • Homer
    tag

    És végezetül, hogy ezzel is bővítsük a kérdező fegyvertárát, van még egy lehetőség az adatok bekérésére! Ez pedig az inputbox:

    dim uj_valtozo as string
    uj_valtozo=Inputbox("Mi legyen az új változó értéke?")

    Talán hasznos lehet ez is.

    Még egy kicsit gondolkodtam rajta. Ez is működik: :)

    If MessageBox.Show("Hello", "Hello", MessageBoxButtons.YesNo) = DialogResult.Yes Then MsgBox("Ráokéztál")

  • Homer
    tag

    Szerintem erre gondolsz:

    dim ujform as new form
    if ujform.showdialog =dialogresult.OK then....

    Itt a dialogresult eredményét neked kell beállítani a dialog-ban.

    És végezetül, hogy ezzel is bővítsük a kérdező fegyvertárát, van még egy lehetőség az adatok bekérésére! Ez pedig az inputbox:

    dim uj_valtozo as string
    uj_valtozo=Inputbox("Mi legyen az új változó értéke?")

    Talán hasznos lehet ez is.

  • Homer
    tag

    eredmeny() = MsgBoxResult.Ok ez tuti hülyeség. Nem 100%, hogy jó megoldás, mert jóideje nem VB.Net-ezek, de
    If MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel) = = DialogResult.OK Then Close()

    Így már a feltétel jó lesz, a Close rémlik, hogy jó, bár lehet, hogy Exit kell helyette? Close az aktuálisan nyitott form-ot zárja, ha ez az egy volt csak nyitva, akkor egyenértékű az Exit-tel.

    Új ablakot pedig valami ilyesmivel tudsz létrehozni

    dim formuj as form - ide majd a VS-ben megcsinált formod neve fog kelleni a form helyett
    majd formuj.Show-val jön fel az ablak.

    Szerintem erre gondolsz:

    dim ujform as new form
    if ujform.showdialog =dialogresult.OK then....

    Itt a dialogresult eredményét neked kell beállítani a dialog-ban.

  • Homer
    tag

    Sziasztok !

    Most kezdek ismerkedni a Visual Studio 2010 VB részével.

    Egy olyan problémába akadtam amivel valamiért nem bírok boldogulni, pedig valószínűleg egyszerű, és kézenfekvő a megoldás:

    Private Sub KilépésToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KilépésToolStripMenuItem.Click
    MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel)

    If eredmeny() = MsgBoxResult.Ok Then Close()

    Valamiért nem tudok kilépni.. Valószínűleg nem jól, vagy nem megfelelően kérdezem le az MsgBox visszatérési értékét. Vagy egyszerűen az MsgBox-ra értődik a Close() utasítás így?

    Egy másik kérdésem az lenne, hogy milyen utasítással lehet egy formon felépített menüszerkezetből ( Private Sub ValamiToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles ValamiToolStripMenuItem1.Click )
    egy új ablakot felhozni, amin pár adat bekérhető, pld inputbox, stb.. és ezek eredményeit visszaadni a főalkalmazásnak?

    Hello,
    én így csinálnám:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _
    ..........................As System.EventArgs) Handles Button1.Click
    .........Dim valasz As integer
    .........valasz = MsgBox("Hello", MsgBoxStyle.YesNo, "Semmi")
    .........MsgBox("A válaszod: " & valasz)
    End Sub

    Eszerint az igen válasz esetén a valasz változó értéke 6 nem esetén pedig 7. ;)

    ...mondjuk ez nem VS2010 hanem VB2003, de sztem használható lesz...

    ... ha pl kilépésre akarod használni akkor tovább folytatva:

    if valasz = 6 then end

  • martonx
    veterán

    Sziasztok !

    Most kezdek ismerkedni a Visual Studio 2010 VB részével.

    Egy olyan problémába akadtam amivel valamiért nem bírok boldogulni, pedig valószínűleg egyszerű, és kézenfekvő a megoldás:

    Private Sub KilépésToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KilépésToolStripMenuItem.Click
    MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel)

    If eredmeny() = MsgBoxResult.Ok Then Close()

    Valamiért nem tudok kilépni.. Valószínűleg nem jól, vagy nem megfelelően kérdezem le az MsgBox visszatérési értékét. Vagy egyszerűen az MsgBox-ra értődik a Close() utasítás így?

    Egy másik kérdésem az lenne, hogy milyen utasítással lehet egy formon felépített menüszerkezetből ( Private Sub ValamiToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles ValamiToolStripMenuItem1.Click )
    egy új ablakot felhozni, amin pár adat bekérhető, pld inputbox, stb.. és ezek eredményeit visszaadni a főalkalmazásnak?

    eredmeny() = MsgBoxResult.Ok ez tuti hülyeség. Nem 100%, hogy jó megoldás, mert jóideje nem VB.Net-ezek, de
    If MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel) = = DialogResult.OK Then Close()

    Így már a feltétel jó lesz, a Close rémlik, hogy jó, bár lehet, hogy Exit kell helyette? Close az aktuálisan nyitott form-ot zárja, ha ez az egy volt csak nyitva, akkor egyenértékű az Exit-tel.

    Új ablakot pedig valami ilyesmivel tudsz létrehozni

    dim formuj as form - ide majd a VS-ben megcsinált formod neve fog kelleni a form helyett
    majd formuj.Show-val jön fel az ablak.

  • kisi
    aktív tag

    Sziasztok !

    Most kezdek ismerkedni a Visual Studio 2010 VB részével.

    Egy olyan problémába akadtam amivel valamiért nem bírok boldogulni, pedig valószínűleg egyszerű, és kézenfekvő a megoldás:

    Private Sub KilépésToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KilépésToolStripMenuItem.Click
    MsgBox("Biztos ki akarsz lépni? Mindent mentettél?", Title:="Kilépés", Buttons:=MsgBoxStyle.OkCancel)

    If eredmeny() = MsgBoxResult.Ok Then Close()

    Valamiért nem tudok kilépni.. Valószínűleg nem jól, vagy nem megfelelően kérdezem le az MsgBox visszatérési értékét. Vagy egyszerűen az MsgBox-ra értődik a Close() utasítás így?

    Egy másik kérdésem az lenne, hogy milyen utasítással lehet egy formon felépített menüszerkezetből ( Private Sub ValamiToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles ValamiToolStripMenuItem1.Click )
    egy új ablakot felhozni, amin pár adat bekérhető, pld inputbox, stb.. és ezek eredményeit visszaadni a főalkalmazásnak?

  • martonx
    veterán

    Különbségtábla elképzelésemre valakinek van még valami ötlete? Nagyon Szenvedek vele :S

    Az elképzelésről a kép itt:
    muszakitanacsado.hu/kepek/kulonbsegtabla.jpg

    Válaszokat előre is köszönöm! :))

    Igen,érthető a probléma, csak éppen a megoldás nem olyan triviális.
    Mint mondtam makróval meg lehet oldani.

  • ArchElf
    addikt

    Különbségtábla elképzelésemre valakinek van még valami ötlete? Nagyon Szenvedek vele :S

    Az elképzelésről a kép itt:
    muszakitanacsado.hu/kepek/kulonbsegtabla.jpg

    Válaszokat előre is köszönöm! :))

  • erich85T
    csendes tag

    Sziasztok!

    Itt mindig olyan segítőkész emberkékre találok, remélem mostani kérdésem is válaszra talál majd. A feladat a következő lenne: Adott két táblázat (munkalap), és a két táblázat különbségét kéne venni, ezt egy haramadik táblázatba (munkalapra) kéne tenni. Erre érdemes makrót írni, vagy valamit tud ezzel az excel kezdeni egyszerűen is?

    pl: adott A és B táblázatból készítünk egy C táblázatot mely AB különbségeit tartalmazza.

    (A) táblázat (oszlopokat kötőjellel választom el):

    a - 2 - 3
    a - 3 - 7
    b - 1 - 2
    b - 3 - 4

    (B) táblázat:

    a - 2 - 3
    a - 3 - 7
    b - 3 - 2
    b - 3 - 4
    c - 1 - 1

    (C) eredmény táblázat:

    b - 1 - 2
    b - 3 - 2
    c - 1 - 1

    Úgy is felfoghatjuk, hogy olyan program kell, ami azon adatokat teszi be egy táblázatba amely adatból adott A vagy B táblázatban csak az egyikben szerepel, tehát aminek a másik táblázatban nincsen párja.

    Várom az ötleteket, illetve megoldásokat. Köszönöm előre! :o))

    Különbségtábla elképzelésemre valakinek van még valami ötlete? Nagyon Szenvedek vele :S

    Az elképzelésről a kép itt:
    muszakitanacsado.hu/kepek/kulonbsegtabla.jpg

    Válaszokat előre is köszönöm! :))

  • Homer
    tag

    Sziasztok!

    Itt mindig olyan segítőkész emberkékre találok, remélem mostani kérdésem is válaszra talál majd. A feladat a következő lenne: Adott két táblázat (munkalap), és a két táblázat különbségét kéne venni, ezt egy haramadik táblázatba (munkalapra) kéne tenni. Erre érdemes makrót írni, vagy valamit tud ezzel az excel kezdeni egyszerűen is?

    pl: adott A és B táblázatból készítünk egy C táblázatot mely AB különbségeit tartalmazza.

    (A) táblázat (oszlopokat kötőjellel választom el):

    a - 2 - 3
    a - 3 - 7
    b - 1 - 2
    b - 3 - 4

    (B) táblázat:

    a - 2 - 3
    a - 3 - 7
    b - 3 - 2
    b - 3 - 4
    c - 1 - 1

    (C) eredmény táblázat:

    b - 1 - 2
    b - 3 - 2
    c - 1 - 1

    Úgy is felfoghatjuk, hogy olyan program kell, ami azon adatokat teszi be egy táblázatba amely adatból adott A vagy B táblázatban csak az egyikben szerepel, tehát aminek a másik táblázatban nincsen párja.

    Várom az ötleteket, illetve megoldásokat. Köszönöm előre! :o))

    Elképzelhetőnek tartom, hogy a kimutatás eszközzel lehet makró nélkül is ilyet, de nem biztos.

  • martonx
    veterán

    Sziasztok!

    Itt mindig olyan segítőkész emberkékre találok, remélem mostani kérdésem is válaszra talál majd. A feladat a következő lenne: Adott két táblázat (munkalap), és a két táblázat különbségét kéne venni, ezt egy haramadik táblázatba (munkalapra) kéne tenni. Erre érdemes makrót írni, vagy valamit tud ezzel az excel kezdeni egyszerűen is?

    pl: adott A és B táblázatból készítünk egy C táblázatot mely AB különbségeit tartalmazza.

    (A) táblázat (oszlopokat kötőjellel választom el):

    a - 2 - 3
    a - 3 - 7
    b - 1 - 2
    b - 3 - 4

    (B) táblázat:

    a - 2 - 3
    a - 3 - 7
    b - 3 - 2
    b - 3 - 4
    c - 1 - 1

    (C) eredmény táblázat:

    b - 1 - 2
    b - 3 - 2
    c - 1 - 1

    Úgy is felfoghatjuk, hogy olyan program kell, ami azon adatokat teszi be egy táblázatba amely adatból adott A vagy B táblázatban csak az egyikben szerepel, tehát aminek a másik táblázatban nincsen párja.

    Várom az ötleteket, illetve megoldásokat. Köszönöm előre! :o))

    makróval oldanám meg.

  • erich85T
    csendes tag

    Sziasztok!

    Itt mindig olyan segítőkész emberkékre találok, remélem mostani kérdésem is válaszra talál majd. A feladat a következő lenne: Adott két táblázat (munkalap), és a két táblázat különbségét kéne venni, ezt egy haramadik táblázatba (munkalapra) kéne tenni. Erre érdemes makrót írni, vagy valamit tud ezzel az excel kezdeni egyszerűen is?

    pl: adott A és B táblázatból készítünk egy C táblázatot mely AB különbségeit tartalmazza.

    (A) táblázat (oszlopokat kötőjellel választom el):

    a - 2 - 3
    a - 3 - 7
    b - 1 - 2
    b - 3 - 4

    (B) táblázat:

    a - 2 - 3
    a - 3 - 7
    b - 3 - 2
    b - 3 - 4
    c - 1 - 1

    (C) eredmény táblázat:

    b - 1 - 2
    b - 3 - 2
    c - 1 - 1

    Úgy is felfoghatjuk, hogy olyan program kell, ami azon adatokat teszi be egy táblázatba amely adatból adott A vagy B táblázatban csak az egyikben szerepel, tehát aminek a másik táblázatban nincsen párja.

    Várom az ötleteket, illetve megoldásokat. Köszönöm előre! :o))

  • vilag
    tag

    Tudja esetleg valaki, hogyan tudom az oszlop számából visszanyerni az oszlop betűjelét?
    Vagy kit tudom e "váltani" valamivel?

    A probléma az előzőekből adódik (nem akarok fiksz hivatkozásokat használni).

    Van azonban egy olyan kódrészletem amiben egy változó által hozott cellanevet adok meg.
    Selection.Sort Key1:=Range(kulcs1), Order1:=xlAscending _
    , Key2:=Range(kulcs2), Order2:=xlAscending _
    , Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
    , DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

    ahol kulcs1=a cella hivatkozása (pl.: b2)
    kulcs2=egy másik cella hivatkozása (pl.: d2)

    Jelen esetben a 2 az fix lenne, de az előtte lévő oszlopnak csak a számát tudom, mivel az dinamikus lenne, tehát adott pillanatban nem biztos, hogy az adat a b oszlopban van.

    Tudom, hogy valami egyszerű a megoldás csak nem találom.

    Igazából annyit szeretnék, hogy az oszlop betűjelét helyettesíthessem az oszlop számával.

    Megoldottam, tudtam, hogy valami egyszerű megoldása lesz.

    Selection.Sort Key1:=Cells(kulcs1, 2), Order1:=xlAscending _
    , Key2:=Range(kulcs2), Order2:=xlAscending _
    , Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
    , DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

    ahol range(kulcs1) helyett, cells(kulcs1, 2) van,
    ahol kulcs1 a korábbi b2 helyett, már csak az oszlop száma (pl.4)

    :)

  • vilag
    tag

    Tudja esetleg valaki, hogyan tudom az oszlop számából visszanyerni az oszlop betűjelét?
    Vagy kit tudom e "váltani" valamivel?

    A probléma az előzőekből adódik (nem akarok fiksz hivatkozásokat használni).

    Van azonban egy olyan kódrészletem amiben egy változó által hozott cellanevet adok meg.
    Selection.Sort Key1:=Range(kulcs1), Order1:=xlAscending _
    , Key2:=Range(kulcs2), Order2:=xlAscending _
    , Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
    , DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

    ahol kulcs1=a cella hivatkozása (pl.: b2)
    kulcs2=egy másik cella hivatkozása (pl.: d2)

    Jelen esetben a 2 az fix lenne, de az előtte lévő oszlopnak csak a számát tudom, mivel az dinamikus lenne, tehát adott pillanatban nem biztos, hogy az adat a b oszlopban van.

    Tudom, hogy valami egyszerű a megoldás csak nem találom.

    Igazából annyit szeretnék, hogy az oszlop betűjelét helyettesíthessem az oszlop számával.

  • martonx
    veterán

    Ha már így megcsiklandoztad a fantáziámat, akkor ajánlhatnál valami jó könyvet (lehetőleg magyar nyelvűt), ami esetleg a világhálón is elérhető. Aztán lehet, hogy belevetem magamat az access-re történő átültetésbe (bár még excelben sincs befejezve :) )

    Most belekukkantottam az accessbe, de azt sem tudom mit kell indítani, úgyhogy kicsit megrémültem, de gondolom ez csak kezdeti ijedtség lesz...

    Magyar nyelvűt online pdf-et nem találtam, hátha te ügyesebb leszel.
    Itt egy kiváló angol nyelvű: [link]

  • vilag
    tag

    A VBA az VBA, ha excel-t, ha access-t használsz.
    Az accessnek megvan az az előnye, hogy az űrlapokhoz nem kell szinte semennyi makrót írni, elég csak varázsolni. Pl. amivel most szívatod magad, az jó eséllyel accessben varázsolva pár perc meló lenne.
    Acces-hez vannak nagyon jó könyvek tutorialok, én a helyetekben rászánnám az időt. Ebben a topikban pedig ugyanúgy kapnátok segítséget, mint eddig.
    Teljesítményben pedig össze se lehet majd hasonlítani. Csatolt táblaként tudja használni az oracle db tábláit is, normális lekérdezéseket, sql-eket lehetne írni benne.

    Van tapasztalatom agyonmakrósított excelekkel :K
    Soha nem fog 100%-osan működni, mindig kell hozzá kompromisszum, ráadásul a 90-es - 2000 évek legeleje óta rengeteget fejlődtek az egyéb megoldások.

    Bocs, véletlenül dupla lett, bár nem tudom hogyan. Törölni nem lehet innen hozzászólást?

  • vilag
    tag

    A VBA az VBA, ha excel-t, ha access-t használsz.
    Az accessnek megvan az az előnye, hogy az űrlapokhoz nem kell szinte semennyi makrót írni, elég csak varázsolni. Pl. amivel most szívatod magad, az jó eséllyel accessben varázsolva pár perc meló lenne.
    Acces-hez vannak nagyon jó könyvek tutorialok, én a helyetekben rászánnám az időt. Ebben a topikban pedig ugyanúgy kapnátok segítséget, mint eddig.
    Teljesítményben pedig össze se lehet majd hasonlítani. Csatolt táblaként tudja használni az oracle db tábláit is, normális lekérdezéseket, sql-eket lehetne írni benne.

    Van tapasztalatom agyonmakrósított excelekkel :K
    Soha nem fog 100%-osan működni, mindig kell hozzá kompromisszum, ráadásul a 90-es - 2000 évek legeleje óta rengeteget fejlődtek az egyéb megoldások.

    Ha már így megcsiklandoztad a fantáziámat, akkor ajánlhatnál valami jó könyvet (lehetőleg magyar nyelvűt), ami esetleg a világhálón is elérhető. Aztán lehet, hogy belevetem magamat az access-re történő átültetésbe (bár még excelben sincs befejezve :) )

    Most belekukkantottam az accessbe, de azt sem tudom mit kell indítani, úgyhogy kicsit megrémültem, de gondolom ez csak kezdeti ijedtség lesz...

  • martonx
    veterán

    Sajnos ez van.

    Pénz nincs semmire, tehát a lightswitch kilőve.
    Az Oracle-t használja a cég (a központi szoftverünk arra lett írva), de kétlem, hogy a szerverhez kapnánk hozzáférést, mivel az a központban van, mi meg megyei szinten vagyunk.
    Az Access járható út lenne (gondoltunk is rá), de sajnos ahhoz még annyit sem konyítunk mint az excelhez és a VBA-hoz.

    Megj.: a gazdálkodói adatbázis jelenleg is excelben van (ugyan így VBA-val "megbolondítva"), de eljárt felette az idő. Új tartalmak szükségesek és megváltoztak az elvárásaink is, így arra gondoltunk, hogy már egyszerűbb újra írni, (és persze akkor már a funkciókat is kibővíteni) mint toldozni-foltozni.

    Esetleg ha lenne egy mentor akkor elkacérkodnánk az access gondolatával, de anélkül egyikünknek sincs annyi (fölös) munkaideje, hogy önerőből belevesse magát a dologba.

    Szerk.: a félreértések elkerülése végett, ez nem kiadott munka, inkább a saját munkánk megkönnyítése, és kihívás is egyben.

    A VBA az VBA, ha excel-t, ha access-t használsz.
    Az accessnek megvan az az előnye, hogy az űrlapokhoz nem kell szinte semennyi makrót írni, elég csak varázsolni. Pl. amivel most szívatod magad, az jó eséllyel accessben varázsolva pár perc meló lenne.
    Acces-hez vannak nagyon jó könyvek tutorialok, én a helyetekben rászánnám az időt. Ebben a topikban pedig ugyanúgy kapnátok segítséget, mint eddig.
    Teljesítményben pedig össze se lehet majd hasonlítani. Csatolt táblaként tudja használni az oracle db tábláit is, normális lekérdezéseket, sql-eket lehetne írni benne.

    Van tapasztalatom agyonmakrósított excelekkel :K
    Soha nem fog 100%-osan működni, mindig kell hozzá kompromisszum, ráadásul a 90-es - 2000 évek legeleje óta rengeteget fejlődtek az egyéb megoldások.

  • Homer
    tag

    Sajnos ez van.

    Pénz nincs semmire, tehát a lightswitch kilőve.
    Az Oracle-t használja a cég (a központi szoftverünk arra lett írva), de kétlem, hogy a szerverhez kapnánk hozzáférést, mivel az a központban van, mi meg megyei szinten vagyunk.
    Az Access járható út lenne (gondoltunk is rá), de sajnos ahhoz még annyit sem konyítunk mint az excelhez és a VBA-hoz.

    Megj.: a gazdálkodói adatbázis jelenleg is excelben van (ugyan így VBA-val "megbolondítva"), de eljárt felette az idő. Új tartalmak szükségesek és megváltoztak az elvárásaink is, így arra gondoltunk, hogy már egyszerűbb újra írni, (és persze akkor már a funkciókat is kibővíteni) mint toldozni-foltozni.

    Esetleg ha lenne egy mentor akkor elkacérkodnánk az access gondolatával, de anélkül egyikünknek sincs annyi (fölös) munkaideje, hogy önerőből belevesse magát a dologba.

    Szerk.: a félreértések elkerülése végett, ez nem kiadott munka, inkább a saját munkánk megkönnyítése, és kihívás is egyben.

    Juhuhuhúú... :) Azt kell, hogy mondjam, részben egyetértek az előttem szólóval. Az excel már ehhez egy kicsit kevés, és nem erre való!

    Ami miatt viszont meg tudlak érteni, az az hogy hasonló cipőben járok. A cégnél ahol dolgozom nekem is sokat segít a makró, és én is ezért kezdtem el foglalkozni a VB-el és a VBA-al. Nálunk SAP van és abban kellene megoldani a hasonló feladatokat, de a fejlesztés időbe telik, és az a szomorú tapasztalatom, hogy ha kérünk egy programfejlesztést akkor hosszas várakozás után ugyan történik valami, de mégsem olyan lesz a z új program mint amilyet szerettünk volna.Hasonó kaliberű programokat írogattam már én is a könyvelgetéseinkhez. (SAP mellett! Egyik kollégám szerint az SAP a "Sz*pjon A P*raszt"-nak a rövidítése :) )

    Kérdésedre:
    Én egyesével töltögetném fel az oszlopban lévő adatokkal a combobox items gyűjteményét.

    valahogy így:

    dim e as scripting.dictionary
    for each elem in column(x)
    ...if not consist e elem.value and elem.value<>"" then e.add(elem.value
    next

    A fenti megoldás csak ötletelés, nem írtam be sehová, tehát valszeg nem működik ha copy-paste-zed :)

  • vilag
    tag

    Úristen, na ezt itt hagyjátok gyorsan abba. :))
    Az excel nem erre való. Hahó.
    Az átlag user által elképzelhetetlenül sokat tud az excel, de egyszerűen nem erre való.
    Egyáltalán honnan jut manapság valakinek az eszébe ilyen marhaság?
    Ha nem akarjátok túlbonyolítani a dolgot, meg sokat programozni,akkor használjatok lightswitch-et (ehhez mondjuk fizetős az ide) .Net vonalon, vagy oracle adf-et (ehhez meg fizetős az alkalmazás szerver) javavonalon.
    Vagy ha már Office, akkor az Access erre lett kitalálva.

    Sajnos ez van.

    Pénz nincs semmire, tehát a lightswitch kilőve.
    Az Oracle-t használja a cég (a központi szoftverünk arra lett írva), de kétlem, hogy a szerverhez kapnánk hozzáférést, mivel az a központban van, mi meg megyei szinten vagyunk.
    Az Access járható út lenne (gondoltunk is rá), de sajnos ahhoz még annyit sem konyítunk mint az excelhez és a VBA-hoz.

    Megj.: a gazdálkodói adatbázis jelenleg is excelben van (ugyan így VBA-val "megbolondítva"), de eljárt felette az idő. Új tartalmak szükségesek és megváltoztak az elvárásaink is, így arra gondoltunk, hogy már egyszerűbb újra írni, (és persze akkor már a funkciókat is kibővíteni) mint toldozni-foltozni.

    Esetleg ha lenne egy mentor akkor elkacérkodnánk az access gondolatával, de anélkül egyikünknek sincs annyi (fölös) munkaideje, hogy önerőből belevesse magát a dologba.

    Szerk.: a félreértések elkerülése végett, ez nem kiadott munka, inkább a saját munkánk megkönnyítése, és kihívás is egyben.

  • martonx
    veterán

    Akkor röviden a lényeg.

    Egy gazdálkodói adatbázisról lenne szó, minden egyes adathoz (legalább is a nagy részéhez) tartozik egy userform vezérlő.
    A userformnak kettős célja van, egyrészt lehetővé teszi a meglévő adatbázisban a találatok szűkítését az adott vezérlőbe írt szöveg alapján, másrész új tételek felvitelére is alkalmas lesz (legalább is eddig ez a terv)
    Induló állapotban a listbox tartalmazza a teljes adatbázist. A beírt karakterek alapján az adatbázis (és így a listbox is) szűkítésre kerül.
    Ha a szűkítés megtörtént és látható a (vélhetően) keresett gazdálkodó, akkor a listboxban rákattinthatunk a keresett emberkére, és egy gombot megnyomva az összes adata betöltődik a megfelelő vezérlőbe ahol ezután változtatásokat hajthatunk végre az adatain.

    Összegezve tehát jól "ment le" :) neked a dolog, két említett probléma független egymástól.

    Valóban a címsorban akartam keresni. Pontosítva a címsor megfelelő szövegét kerestem, hogy megkaphassam a helyét (oszlop sorszmát), mert később szeretnék hivatkozni a helyére (amikor visszatöltöm az adatokat), de az adatbázis oszlopbeosztása még képlékeny, ezért nem akartam abszolult hivatkozásokat (vagy offset-et) használni. Mert ha esetleg később be kell szúrnom egy oszlopot (vagy éppen ki kell vennem) akkor nézhetném át az egész kódot, így viszont nem kell ilyesmivel törődnöm.

    Remélem nagyjából értelmezhető amit írtam.
    Egy pár kép, hogy jobban átlátható legyen a dolog:
    [link]

    Úristen, na ezt itt hagyjátok gyorsan abba. :))
    Az excel nem erre való. Hahó.
    Az átlag user által elképzelhetetlenül sokat tud az excel, de egyszerűen nem erre való.
    Egyáltalán honnan jut manapság valakinek az eszébe ilyen marhaság?
    Ha nem akarjátok túlbonyolítani a dolgot, meg sokat programozni,akkor használjatok lightswitch-et (ehhez mondjuk fizetős az ide) .Net vonalon, vagy oracle adf-et (ehhez meg fizetős az alkalmazás szerver) javavonalon.
    Vagy ha már Office, akkor az Access erre lett kitalálva.

  • vilag
    tag

    Abból amit korábban leítál nekem egyáltalán nem az jött le, hogy a te címsorban szeretnél keresni és nem a tartalmoban...

    AE

    Akkor röviden a lényeg.

    Egy gazdálkodói adatbázisról lenne szó, minden egyes adathoz (legalább is a nagy részéhez) tartozik egy userform vezérlő.
    A userformnak kettős célja van, egyrészt lehetővé teszi a meglévő adatbázisban a találatok szűkítését az adott vezérlőbe írt szöveg alapján, másrész új tételek felvitelére is alkalmas lesz (legalább is eddig ez a terv)
    Induló állapotban a listbox tartalmazza a teljes adatbázist. A beírt karakterek alapján az adatbázis (és így a listbox is) szűkítésre kerül.
    Ha a szűkítés megtörtént és látható a (vélhetően) keresett gazdálkodó, akkor a listboxban rákattinthatunk a keresett emberkére, és egy gombot megnyomva az összes adata betöltődik a megfelelő vezérlőbe ahol ezután változtatásokat hajthatunk végre az adatain.

    Összegezve tehát jól "ment le" :) neked a dolog, két említett probléma független egymástól.

    Valóban a címsorban akartam keresni. Pontosítva a címsor megfelelő szövegét kerestem, hogy megkaphassam a helyét (oszlop sorszmát), mert később szeretnék hivatkozni a helyére (amikor visszatöltöm az adatokat), de az adatbázis oszlopbeosztása még képlékeny, ezért nem akartam abszolult hivatkozásokat (vagy offset-et) használni. Mert ha esetleg később be kell szúrnom egy oszlopot (vagy éppen ki kell vennem) akkor nézhetném át az egész kódot, így viszont nem kell ilyesmivel törődnöm.

    Remélem nagyjából értelmezhető amit írtam.
    Egy pár kép, hogy jobban átlátható legyen a dolog:
    [link]

  • ArchElf
    addikt

    Igazából már muszáj "makrobizni", mert userformon fog történni minden, ez csak egy apró szeletet volt a dolognak. Mindössze enélkül nem lett volna értelme folytatni, mert később újra kellett volna írnom az egészet.

    A megoldás ez lett (bár gondolom az előzőekből nektek ez már nemigen lesz újdonság):
    név = Application.WorksheetFunction.Match("Név", ThisWorkbook.Sheets("gtorzs").Range("1:1"), 0)

    Listboxal kapcsolatban viszont lenne egy érdekes kérdésem, amelyre eddig önerőből nem találtam választ.
    A listbox ugye egy kijelölt excel tartományt "mutat meg". Azt viszont, hogyan lehet megoldani, hogy az egyesített cellák is egyesítettként jelenjenek meg benne?

    Pl. excel táblában van nekem egy fejléc oszlopom ami viselje pl a következő nevet: "Születési dátum", viszont ez három oszlop (év, hónap, nap) fejléce. A listboxban viszont úgy jelenik meg, hogy az év oszlop felett van a "Születési dátum", a másik kettő felett pedig üres cella (elválasztó vonallal mindennel együtt).

    Ötlet?

    Abból amit korábban leítál nekem egyáltalán nem az jött le, hogy a te címsorban szeretnél keresni és nem a tartalmoban...

    AE

  • vilag
    tag

    Én még sosem használtam eddig a HOL.VAN függvényt, de jah, igazad van! Azzal is meg lehet oldani a feladatot. (Mondjuk a fenti megoldásom is hasonló eredményt adna.) :)
    A konkrét feladattól függ, hogy én melyiket használnám. Ha nem muszáj makrobizni, akkor én a helyedben megmaradnék a "gyári" függvényeknél...

    Igazából már muszáj "makrobizni", mert userformon fog történni minden, ez csak egy apró szeletet volt a dolognak. Mindössze enélkül nem lett volna értelme folytatni, mert később újra kellett volna írnom az egészet.

    A megoldás ez lett (bár gondolom az előzőekből nektek ez már nemigen lesz újdonság):
    név = Application.WorksheetFunction.Match("Név", ThisWorkbook.Sheets("gtorzs").Range("1:1"), 0)

    Listboxal kapcsolatban viszont lenne egy érdekes kérdésem, amelyre eddig önerőből nem találtam választ.
    A listbox ugye egy kijelölt excel tartományt "mutat meg". Azt viszont, hogyan lehet megoldani, hogy az egyesített cellák is egyesítettként jelenjenek meg benne?

    Pl. excel táblában van nekem egy fejléc oszlopom ami viselje pl a következő nevet: "Születési dátum", viszont ez három oszlop (év, hónap, nap) fejléce. A listboxban viszont úgy jelenik meg, hogy az év oszlop felett van a "Születési dátum", a másik kettő felett pedig üres cella (elválasztó vonallal mindennel együtt).

    Ötlet?

  • Homer
    tag

    Igen, a VBA makró jártasságod következő szintje, amikor visszatérsz a gyári függvényekhez, és szükség szerint azokat hívogatod makróból.
    A HOl.VAN egyébként az OFSZET-tel kiegészítve brutál dolgokat tud.

    :) Valóban "érdekes" megoldás, de a lehetőség adott hozzá...

Új hozzászólás Aktív témák

Hirdetés