Hirdetés

2016. július 30., szombat

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual Basic

Hozzászólások

(#2651) Atomantiii válasza sztanozs (#2650) üzenetére


Atomantiii
(senior tag)

Igen én is úgy gondolom, de az a kérdés, hogy akkor hogy tudnék felfele és lefele álló "kacsacsőr" jelet írni vagy fel / le, illetve oldalra nyilat?

(#2652) Atomantiii


Atomantiii
(senior tag)

Még egy kérdés:

ha van két listview-em vb6-ban és az egyikben ki van jelölve az egyik sor és át akarok váltani a másik listviewre, akkor hogy tudom elérni, hogy a másik listview egyik eleme is ki legyen jelölve?

A selected item-nek kell valahogy megmondani csak nem tudom hogyan.

(#2653) DasBoot


DasBoot
(kvázi-tag)

Szép estét, Mindenkinek! Látom, hogy sok most ismerkedő teszi fel a kérdéseit, Én is ezek közé tartozom. Kérdésem az lenne, hogy egy bizonyos "alakzatot" megrajzoltam és hogy lehetne ezt elmenteni? Az "alakzatban" függőleges és vízszintes vonalak, Label-ek és Text box-ok vannak. Később ezeket az alakzatokat egy CommandButton-nal be is szeretném illeszteni, de most csak az első kérdésemre várom a hozzászólásokat. Egyelőre képet nem tudok készíteni, de igyekszem. Előre is köszönöm a válaszokat. Üdv.: Joe

(#2654) Bobrooney válasza DasBoot (#2653) üzenetére


Bobrooney
(senior tag)

Hát ebből a leírásból nem hiszem hogy bárki is érteni fogja, hogy mit szeretnél.

Eladó: Denon DA-300, Audiolab P8000-Q8000 előfok-végfok páros

(#2655) Apollo17hu válasza DasBoot (#2653) üzenetére


Apollo17hu
(senior tag)

Ha ez egy form, akkor szerintem a modulhoz hasonlóan lehet exportálni.

(#2656) DasBoot válasza Bobrooney (#2654) üzenetére


DasBoot
(kvázi-tag)

Köszönöm a választ. Nem is az volt a célom, hogy egyből kapjak választ. Szóval a képen a bekarikázott részeket szeretném elmenteni, de külön-külön. A konkrét dolog, hogy egy PLC progarmban a letrák rajzolását szeretném megoldani. A mentett alakzatokat később egy CommandButton-nal szeretném a megfelelő helyre beilleszteni. Iagzándiból a papíron való rajzolást szeretném kiváltani.

[ Szerkesztve ]

(#2657) DasBoot válasza Apollo17hu (#2655) üzenetére


DasBoot
(kvázi-tag)

Ezek control-ok.

(#2658) DasBoot válasza DasBoot (#2657) üzenetére


DasBoot
(kvázi-tag)

A könyvből olvasás után úgy gondolom, hogy ezt .bmp-ként kellene elmentenem, ill. egy frame-be lehetne beletenni és menteni.

(#2659) DasBoot válasza DasBoot (#2658) üzenetére


DasBoot
(kvázi-tag)

Ez a frame-es dolog nem jó.

(#2660) Atomantiii


Atomantiii
(senior tag)

(#2661) DasBoot válasza Atomantiii (#2660) üzenetére


DasBoot
(kvázi-tag)

Mire?

(#2662) Atomantiii válasza DasBoot (#2661) üzenetére


Atomantiii
(senior tag)

2652 hsz, illetve alatta eggyel.

(#2663) sztanozs válasza Atomantiii (#2662) üzenetére


sztanozs
(őstag)

Olyan rég volt már VB6, hogy szvsz elég sokat utána kellene olvasni - plusz szerintem már senkinek nincs fent fejlesztőkörnyezet, így aktívan senki nem tud segíteni.

Amúgy pl. negyedik elem kijelölésre:
Listbox1.Selected(4) = True

Ha eltünteti, amikor leveszed a fókuszt:
Listbox1.HideSelection = False

Ja amúgy ez kb 3 perc google volt. Ha nem megy az angol, akkor gyorsan állj neki.

[ Szerkesztve ]

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

(#2664) Fleed


Fleed
(fanatikus tag)

Helló! Vállal esetleg valaki nagyon kezdő szintű visual basic házi feladat megírásban segítség nyújtást? Kezdőknek adott háziról volna szó és pár ezer ft ot tudnék felajánlani Kérem privátban jelezzetek. Köszönöm

(#2665) Zsolt_974


Zsolt_974
(kvázi-tag)

Sziasztok!

Egy kis segítséget, útmutatást szeretnék kérni, bár látom nem nagyon pörög a téma.
Írogatok egy programot Visual Basic 2008 környezetben. A program soros portról fogad adatokat.
A problémám a következő lenne. A program indulásakor a gépen aktív soros portok száma mellé, hogy lehet az eszköz nevét is kiíratni mint az eszközkezelőben is van? Remélem érthetően fogalmaztam.

A programban a következő sor olvassa be a soros portokat:

ComboBox1.Items.AddRange(IO.Ports.SerialPort.GetPortNames())

Segítségeteket, válaszotokat előre is köszönöm. :R

Üdv. Zsolt

(#2666) Bobrooney válasza Zsolt_974 (#2665) üzenetére


Bobrooney
(senior tag)

[link]
Ahogy nézem itt iterálással oldotta meg. Remélem jó lesz :)

Eladó: Denon DA-300, Audiolab P8000-Q8000 előfok-végfok páros

(#2667) Zsolt_974 válasza Bobrooney (#2666) üzenetére


Zsolt_974
(kvázi-tag)

Köszönöm a gyors választ. :R

Sajnos ezzel is csak a következőt kapom vissza, hogy
COM 1
COM 9

Viszont ezt találtam:
[link]

Ez egy MsgBox-ban vissza adja ezt:

Sajnos a ComboBox1-be nem tudom belevarázsolni és csak a Com 1 jelenik meg a Com 9 nem.
Én csak hobbiszinten programozgatok. :B Viszont kitartóan. :K

Zsolt

(#2668) Bobrooney válasza Zsolt_974 (#2667) üzenetére


Bobrooney
(senior tag)

Gondolom erre gondolsz: MsgBox(queryObj("Description"))
Akkor ha a MsgBox helyett egy String-be rakod bele?

Eladó: Denon DA-300, Audiolab P8000-Q8000 előfok-végfok páros

(#2669) Zsolt_974 válasza Bobrooney (#2668) üzenetére


Zsolt_974
(kvázi-tag)

Így indul a program:

A belépés gombra klikkelve:

Ok gombra klikkelve és utána a "Com port lenyílóban ezek láthatók: Com1, Com9, Kommunikációs port(Com1)":

A program kódban az ehhez tartozó sorok:

Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_SerialPort")
_______________________________________________________________________________________

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _Button1.Click

For Each queryObj As ManagementObject In searcher.Get()
MsgBox(queryObj("Name"))
Dim textt As String = queryObj("Name").ToString
RichTextBox1.Text = textt
ComboBox1.Items.Add(textt)

Next

ComboBox1.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
End Sub

Végül is tegnap már ott jártam, hogy a ComboBox-ba is beírja, de sajnos csak a
Kommunikációs port(COM1). Az USB-SERIAL CH340(COM9) nem sikerül kiíratni.
A két port közül miért csak a Kommunikációs port(COM1)-et találja meg?

[ Szerkesztve ]

(#2670) Bobrooney válasza Zsolt_974 (#2669) üzenetére


Bobrooney
(senior tag)

Lehet az USB-t más metódusban tudod lekérdezni. [link]

Eladó: Denon DA-300, Audiolab P8000-Q8000 előfok-végfok páros

(#2671) Zsolt_974 válasza Bobrooney (#2670) üzenetére


Zsolt_974
(kvázi-tag)

Bocs, hogy nem válaszoltam, de nem volt rá időm. :R :R :R

Igen közbe rájöttem én is, hogy miért csak a Com1-et találja meg és a Com9-et miért nem. Azért, mert a Com9 egy usb-s eszköz, "virtuális soros port". :W

Viszont ezzel:
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity")

sikerült megtalálni az USB-Serial CH340(COM9)-et, de sajnos sok PnP eszköz, erőforrások is belekerült a listába. :Y

(#2672) bundli


bundli
(tag)
LOGOUT blog

Sziasztok!

Van egy 5x5-ös cellatartományom, legyen ez most A1:E5.

Azt szeretném megcsinálni, hogy egy gombnyomásra ezt az 5x5-ös területet másolja be ezalá mégegyszer. Ha megint megnyomom a gombot, akkor a következő alá illesztené be és így tovább.

Eddig idáig jutottam, hogy:

ActiveCell.Range("A1:E5").Select
Selection.Copy
ActiveCell.Offset(6, 0).Range("A1").Select
ActiveSheet.Paste

Ez pont azt csinálja ami nekem kéne, de csak akkor ha "jó helyre van kattintva".
Tehát ha máshova van kattinva induláskor, akkor már el van rontva az egész. Egy Rows("1:1").Select után tökéletes, egészen a második kattintásig, mert utána ugyanúgy mindig az 1:1 cellától fog indulni.
Valahogy azt kéne megoldani, hogy elmentse egy változóba azt, hogy hányszor lett már másolva. Ezt akár egy segédcellába is le lehetne menteni, de nem tudom hogyan. Azért is jó lenne ezt elmenteni, mert minden egyes másolt blokk mellé oda kéne írni, hogy ez éppen hanyadik.

Nagyon megköszönék bármi nemű segítséget! :R

(#2673) Apollo17hu válasza bundli (#2672) üzenetére


Apollo17hu
(senior tag)

Első lépésben egy do while... ciklusban megszámolnám, hány cella van feltöltve az "A" oszlopban. Ezt letárolnám akár változóba, de akár valamelyik cellába ki lehetne íratni, majd ezt felhasználva az

ActiveCell.Offset(6, 0).Range("A1").Select

utasításban a 6-ost kicserélném az 1. lépésben meghatározott változó értékére.

(#2674) Delila_1 válasza bundli (#2672) üzenetére


Delila_1
(PH! kedvence)

Range("A1:E5").Copy Range("A1").Offset(5)

A Select és az ActiveCell utasítást a lehetőség szerint kerülni kell.

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

(#2675) Delila_1 válasza bundli (#2672) üzenetére


Delila_1
(PH! kedvence)

Reggel nem figyeltem eléggé. :B

Írj az L1 cellába – vagy ehelyett egy olyan cellába, amire biztosan nem lesz szükséged később – egy egyest. Ha másik cellát választasz, mindkét sorban írd át az L1-et.

Sub masol()
Range("A1:E5").Copy Range("A1").Offset(Range("L1") * 5)
Range("L1") = Range("L1") + 1
End Sub

Ez a makró az A1:E5 tartományt annyiszor másolja folyamatosan egymás alá, ahányszor elindítod.

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

(#2676) YAN0U


YAN0U
(újonc)

Sziasztok,

Segítségre lenne szükségem. Hogyan tudom elérni, hogy minden egyes indításkor az E2 legyen a kezdő cella. ha ezt használom mindig az E2-ben marad és nem lép egyet lefele.

xlWorkSheet.Range("E2").Select()

Választ köszönöm

If e.KeyCode = Keys.Enter And RadioButton1.Checked = True Then
e.SuppressKeyPress = True

xlWorkBook = xlApp.Workbooks.Open("C:\Desktop\hwp.xlsx")
xlWorkSheet = xlWorkBook.Worksheets("munka1")

With xlWorkSheet
xlApp.ActiveCell.Value = TextBox1.Text
xlApp.ActiveCell.Offset(1, 0).Select()

End With
xlWorkBook.Save()
xlWorkBook.Close()
TextBox1.Clear()

End If

(#2677) Delila_1 válasza YAN0U (#2676) üzenetére


Delila_1
(PH! kedvence)

Ennél jóval egyszerűbben elérheted. A megnyitandó füzeted ThisWorkbook lapjához beírod ezt a makrót:

Private Sub Workbook_Open()
Sheets("Munka1").Select
Range("E2").Select
End Sub

Ha egy füzet ThisWorkbook lapján Workbook_Open eseményvezérelt makró van, akkor a nyitásakor az végrehajtódik.

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

(#2678) YAN0U válasza Delila_1 (#2677) üzenetére


YAN0U
(újonc)

bocs, azt nem írtam, hogy vb.net
VB2010 alól futtatom és textboxon keresztül viszek be adatot az excel E2 cellájától kezdve minden indításkor

(#2679) bundli


bundli
(tag)
LOGOUT blog

Sziasztok!

Elnézést a késői válaszért, először is köszönöm mindenkinek a segítséget Apollo17hu válasza jött be, utána láttam csak Delila_1 javított válaszát, amikor már kész voltam. :B

Viszont most egy ennél szerintem nagyságrendekkel nehezebb kérdéssel jönnék. Gyakorlatilag ugyanez lenne a feladat mint előbb, vagyis adott egy sor vagy sorok, amelyeket duplikálni kéne. A probléma már ott kezdőik, hogy a cellákban nem egyszerű értékek vannak, hanem formulával számoltak. Tehát ha lefut a script, akkor nem cask simán át kéne másolni az értékeket, hanem adott esetben a formulákat is. Mindezt úgy, hogy akár generikus is legyen. (tehát offszetelje el a cellát megadott értékkel, amennyibe kéne)

Amit még szeretnék, az pedig az, hogy legördülő menüvel lehessen választani a létrehozott másolatokból, tehát minden egy helyen lenne.

A könnyebb érthetőség kedvéért hoztam is egy példát rá:

Egy sima kép:

És felfedve a formulákat:

(#2680) YAN0U válasza Delila_1 (#2677) üzenetére


YAN0U
(újonc)

Upsz! felületesen olvastam végig az üzeneted
Ez eszembe sem jutott, pedig szoktam használni.

Köszönöm

(#2681) Delila_1 válasza bundli (#2679) üzenetére


Delila_1
(PH! kedvence)

Nem látszanak a képeken a sor- és oszlopazonosítók, így csak találgatni lehet, mi melyik cellában van. A makrót arra az esetre írtam, ha a képeken láthatóak az A1 cellában kezdődnek.

A két tábla képleteiben fixáld az oszlopokat $ jellel. Pl. =B3-D3 helyére =$B3-$D3 kerüljön.

Az A8 cellába vigyél be érvényesítést, ahol a forrás =Verziószám=1;Verziószám=2

Az eseményvezérelt makrót a lapodhoz kell rendelned.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim terulet As Range
If Target.Address = "$A$8" Then
Application.EnableEvents = False
Select Case Target
Case "Verziószám=1"
Set terulet = Range("B2:D4")
Case "Verziószám=2"
Set terulet = Range("G2:I4")
End Select
terulet.Copy Range("B9")
Application.EnableEvents = True
End If
End Sub

[ Szerkesztve ]

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

(#2682) bundli válasza Delila_1 (#2681) üzenetére


bundli
(tag)
LOGOUT blog

Köszönöm, ez most úgy néz ki, hogy működik, viszont egy csavar kimaradt belőle, amit lehet nem túl jól írtam le. Összesen max 6 ilyen táblázat lehet amelyeket ki lehetne választani, de alapjáraton egy sincs feltöltve, ezt a felhasználónak kéne tudnia egyesével hozzáadni, de lehet hogy csak 4-re van szüksége, ebben az esetben nem lenne szabad kiválasztani az ötödiket, mert az nem is létezik.

Röviden úgy képzelem el, hogy van egy munkalap, ahol csak kiválasztgatja ezeket a táblázatokat és egy másik munkalapon (vagy ugyanezen a munkalapon rejtett cellákban) lennének magák a táblázatok.

Alapértelmezetten lenne egy 0. menü ahol az új táblázatokat lehetne felvenni.

Köszönöm mégegyszer az eddigi segítséget!

:R

(#2683) Delila_1 válasza bundli (#2682) üzenetére


Delila_1
(PH! kedvence)

Tedd ki elérhető helyre a füzetet, miután a nem publikus adatok helyére fals adatokat írtál.

Abból megtudjuk, hol helyezkednek el a táblázataid. Az nem jó tipp, hogy az találja ki a helyeket, méreteket, aki segítene.

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

(#2684) bundli válasza Delila_1 (#2683) üzenetére


bundli
(tag)
LOGOUT blog

Nos rendben, akkor itt található a fájl ahol van a .xlsm fájl, benne makrókkal.

Valamiért bugos mikor az első táblázatot választom ki, arra nem jöttem rá, hogy miért van így.

Ezen felül ugye azt kéne megoldani, hogy bal felső fülben lehessen létrehozni táblákat és a gombokkal meg törölni és módosítani.

(#2685) Delila_1 válasza bundli (#2684) üzenetére


Delila_1
(PH! kedvence)

Az egészet átírtam. :) Itt van.

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

(#2686) bundli válasza Delila_1 (#2685) üzenetére


bundli
(tag)
LOGOUT blog

Hú, ez nagyon jól sikerült, köszönöm! Viszont lenne pár kérdésem az Apply_Changes makróval kapcsolatban:

Else
sor = Application.Match(Range("A2"), .Columns(1), 0)
End If
Range("B2:D4" & sor).Copy .Range("B" & sor)

És a Nevadas makróval is:

ActiveWorkbook.Names.Add Name:="Táblák", RefersToR1C1:="=Rejtett!R1C8:R" & sor / 3 + 1 & "C8"

Ezek pontosan mit csinálnak? Nekem nem teljesen világosak sajnos. Le tudnád írni kérlek?

:R

(#2687) Delila_1 válasza bundli (#2686) üzenetére


Delila_1
(PH! kedvence)

A sor = Application.Match(Range("A2"), .Columns(1), 0) a sor változóba beteszi azt az értéket, ahol a Match (hol.van) függvény a Rejtett lapon az első oszlopban megtalálja az A2 cella értékét .

A Range("B2:D4" & sor).Copy .Range("B" & sor) másolja a B2:D4 tartományt a Rejtett lapnak abba a sorába, ott is a B oszlopba, amit a Match megtalált. Jó. hogy írtad, az & sor-t vedd ki. Helyesen:
Range("B2:D4").Copy .Range("B")

A Táblák nevet a Képletek | Névkezelő menüpontban láthatod. Ha rákattintasz, a Hivatkozás mezőben látod, melyik területre vonatkozik. Ezt a területet módosítja a Nevadas makró. A

sor = Sheets("Rejtett").Range("B" & Rows.Count).End(xlUp).Row

megkeresi az utolsó sort a Rejtett lapon, a sor számát eltárolja a sor változóban.

Az ActiveWorkbook.Names("Táblák").Delete törli az előző, Táblák című nevet. A következő sor megadja az új Táblák név területét. Ez a Rejtett lap H (nyolcadik) oszlopának első sorától addig tart, mint a sor/3+1 érték.
Például a Rejtett lapon az utolsó kitöltött sor a 18. 18/3=6. Ilyenkor a Táblák nevű terület a H1:H7 tartomány lesz. Ha 3 táblád van kitöltve, akkor a sor=9, 9/3+1=4, a területe Táblák H1:H4 lesz. A Sheets4 lap A2 cellájában lévő érvényesítés mindig az aktuális Táblák-at mutatja. Nézd meg az érvényesítésben a Forrást!

Azt hiszem, a gombokat kicsit alacsonyra vettem, nem férnek ki a szövegek. Így kellene kinézniük:

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

(#2688) Delila_1 válasza Delila_1 (#2687) üzenetére


Delila_1
(PH! kedvence)

Lejárt a szerkesztési idő.

A B2:D4 rendesen B2:D4.

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

(#2689) bundli válasza Delila_1 (#2687) üzenetére


bundli
(tag)
LOGOUT blog

Jó. hogy írtad, az & sor-t vedd ki. Helyesen:

Na igen, pont azt a részét nem értettem amit ki kellett venni :D

Ez a Nevadas script azért nem semi, most hogy így leírtad már értem, de magamtól ilyet biztos nem írtam volna.

Köszönöm a segítséget!

(Holnap még lehet írok egy kérdést :B )

(#2690) bundli


bundli
(tag)
LOGOUT blog

Máris lenne valami, de talán nem oly nehéz:

Arra esetleg van bármi ötleted, hogy az hogyan oldható meg szépen, hogy meg van adva egy szám, legyen ez most 3. (B1-es cella)

Ekkor az Excelnek az adott munkalapra az alábbiakat kéne írnia egymás alá az A oszlopba:

Teszt 1
Teszt 2
Teszt 3

Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.

(#2691) Delila_1 válasza bundli (#2690) üzenetére


Delila_1
(PH! kedvence)

Most éppen baj van az Excelemmel. Majd holnap, ha sikerül rendbe tenni, de csak délután lesz időm rá.

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

(#2692) Delila_1 válasza bundli (#2690) üzenetére


Delila_1
(PH! kedvence)

Azért leírom, de szigorúan próba nélkül. A laphoz kell rendelni a makrót.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Long

If Target.Address = "$B$1" And IsNumeric(Target) Then
Application.EnableEvents = False
Columns(1).ClearContents
For sor = 1 To Target
Cells(sor, 1) = "Teszt " & sor
Next
Application.EnableEvents = True
End If
End Sub

[ Szerkesztve ]

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

(#2693) Delila_1 válasza bundli (#2690) üzenetére


Delila_1
(PH! kedvence)

Nézd meg ezt a füzetet. Másik gépen állítottam össze.

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

(#2694) bundli válasza Delila_1 (#2693) üzenetére


bundli
(tag)
LOGOUT blog

Hát ez több mint tökéletes, köszönöm szépen, nagyon hálás vagyok a segítségeidért, tényleg!

Lenne viszont megint egy problémám. Amennyiben van egy kis ideje valakinek ezen a hosszú héten ránézhet ha tud majd:

Az lenne a feladat, hogy volt eddig sok-sok sornyi adat amelyek közül néhány feltétles formázással ki volt szürkítve. Ezt meg lehetne oldani VBA-val automatikusan hidoelja azokat a tartományokat amelyek a feltétles formázás által ki voltak eddig szürkítve?

Feltöltöttem egy excel fájlt, amelyben meg van adva egy celle ahol a bizonyos szám található és annak az értékétől függően kellene a megadott tartományokat hideolni.

(#2695) Delila_1 válasza bundli (#2694) üzenetére


Delila_1
(PH! kedvence)

Örülök, hogy tetszik.

A-tól G-ig nem lehet rejteni, csak teljes sorokat.
A feltételeidnél átfedések vannak. A 2 is kisebb, mint 6.

Jobb lett volna így a meghatározás:
<2 (ez negatív szám, vagy 0 és 1,9999 közötti érték)
>=2 és <3 (ez 2-től 2,9999 közötti érték)
... és így tovább.

Egyébként nem kell hozzá makró, autoszűrővel szín szerinti szűrést is végre tudsz hajtani.

[ Szerkesztve ]

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

(#2696) bundli válasza Delila_1 (#2695) üzenetére


bundli
(tag)
LOGOUT blog

Valóban, most ezt sikerült megoldanom, mondjuk kicsit trükközve egy scripttel, de működik :)

Még anno volt ez a táblázatos kérdésem, ami csodálatosan is működik. Annyit kéne rajta módosítani, hogy egy cellába meg kéne adnom, hogy hány darab táblázat legyen összesen és akkor aszerint kéne változni az A2-es cella értéke. Továbbá se új tábla, se tábla törlés nem kéne bele.
Esetleg ebben tudnál segíteni, hogy mit kéne változtatni azon?

(Röviden: Beírom a G2-es cellába hogy három, akkor 3 darab táblázat közül lehessen kiválasztani és csak szerkeszteni lehessen az adott táblákat)

(#2697) Delila_1 válasza bundli (#2696) üzenetére


Delila_1
(PH! kedvence)

Összeállítottam, de nem sok értelmét látom.
Ha pl. 3 táblázatod van kitöltve, és a G2-be 5-öt írsz, akkor csak adatok nélküli táblázatot hoz be az A2-es kiválasztásnál.

Még azt teheted meg ezzel az új felállással, hogy nem sorban állítod ki a táblázatokat, hanem pl. a 3-as után jön a hatodik.

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

(#2698) bundli válasza Delila_1 (#2697) üzenetére


bundli
(tag)
LOGOUT blog

Köszi szépen, úgy néz ki jól működik, de elég fekete mágia számomra, még tanulmányozom :)

Egy olyan érdekes dologban kérnék segítséget, amire lehet nincs is megoldás, mert már órák óta Googleban keresek rá választ, de nem találtam.

Hogyan lehet másolni cellákat úgy VBA segítsgével úgy, hogy minden formázás megmaradjon, tehát még az is, hogy az egyesített cellákat is átvigye és cellaszegélyeket is.

Erre is itt egy példa excel file: katt

Tehát az "Original" fülön található formázást kéne átmásolni a "Copy" fülre. Valamiért nem sikerül ugyanolyanra varázsolni..

(#2699) bundli válasza bundli (#2698) üzenetére


bundli
(tag)
LOGOUT blog

Arra rájöttem, hogy az Interior.Color-t is másolni kell. Csak azt másolni tudom, de a contentet vele már nem.

A belső színt ezzel a paranccsal lehet másolni:
rngPaste.Interior.Color = rngCopy.DisplayFormat.Interior.Color

Most már csak arra kéne rájönni, hogy a tartalmat hogyan másoljam mellé. :F

(#2700) Delila_1 válasza bundli (#2699) üzenetére


Delila_1
(PH! kedvence)

A

sheets("Egyik lap").range("A1:D100").copy sheets("Másik lap").range("B10")

mindent másol az Egyik lapról a Másik lapra.

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

(#2701) bundli válasza Delila_1 (#2700) üzenetére


bundli
(tag)
LOGOUT blog

Köszi, ez azóta megoldódott! :R

Most olyan problémám lenne, hogy van 3 darab cella, amelybne szöveg van, ezt szeretném kimenteni egy txt fájlba egy gombbal úgy, hogy gombnyomáskor el lehessen dönteni azt, hogy hova mentődjön a fájl egy popup menüben.

Az egyszerűség kedvéért legyen A1:A3 tartomány amit egy .txt fájlba kelljen kimenteni

(#2702) bundli


bundli
(tag)
LOGOUT blog

Merged/Összevont cellák tartalmának törlésére valami ötlet valakitől? Azt találtam róla neten, hogy ha unmergelem őket akkor lehet törölni, de ez az opció sajna nem játszik nálam, mert utána összevonva kellenének.

Tehát adott egy A1:C100-as tartomány, ahol kettesével össze vannak vonva a cellák, bennük tartalommal. Ezt hogyan lehet törölni?

(#2703) alfa20 válasza bundli (#2702) üzenetére


alfa20
(senior tag)

Szia,

Tartalom törlést próbáld meg esetleg:
Range("A1:C100").ClearContents

[ Szerkesztve ]

"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)

(#2704) bundli válasza alfa20 (#2703) üzenetére


bundli
(tag)
LOGOUT blog

Igen, pont ezzel próbáltam, de nem engedte az összevont cella miatt.

(#2705) alfa20 válasza bundli (#2704) üzenetére


alfa20
(senior tag)

nálam 2010-es Excel-ben nincs gondja, szépen törli:

"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)

(#2706) Delila_1 válasza bundli (#2704) üzenetére


Delila_1
(PH! kedvence)

El lehet kerülni a cellák összevonását, mert bár megengedi az Excel, sokszor váratlan hibákat okoz.

Az A1:A3 összevonása helyett ezt tedd:

• Beírod az A1-be a címet,
• Kijelölöd az A1:A3 tartományt,
• Cellaformázás, igazítás fül,
• A szöveg igazítása vízszintesen legördülőből "A kijelölés közepére" opciót válaszd ki.

Látszólag középre kerül a cím, és itt a látszat az, ami számít. Ha szegélyeket alkalmazol, azok is megfelelnek majd a kívánt kinézetnek.

Szerk.: a teljes tartományban megszünteted az összevonásokat, majd végrehajtod az első szöveg középre helyezését. Ezután már csak ki kell jelölnöd a következőt, az F4 gyorsbillentyű ezt is középre teszi. Az F4 az utolsó műveletet ismétli. Kijelölsz - F4, kijelölsz - F4.

[ Szerkesztve ]

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

(#2707) Nikkie


Nikkie
(újonc)

Kedves fórumozók,

A segítségeteket szeretném kérni egy excel vba kód kis részletével kapcsolatban.

Készítettem egy macrót ami tökéletesen is fut (megkeresi akit kell, listát készít majd azt pdf-ként csatolja, kiküldi a levelet a pdf-el, beleteszi amit kell, to/cc field-eket kitölti, stb.) viszont egy részét szeretném változtatni de sajnos elakadok ott, hogy ha több emberem van a listában akkor hogy küldje ki a leveleket egyesével, de úgy, hogy az egy emberhez tartozó jegyeket összegyűjti egy levélbe?

Lentebb csatolok egy képet is random adatokkal.

Szóval tömören a kérésem az lenne, hogy tud-e segíteni valaki egy olyan macró részlettel, ami lenti táblázatból kigyűjti az egy névhez tartozó adatokat majd azt továbbra is pdf-ként csatolja és ezután megismétli a lépést mindaddig, amíg van név az E3 mezőben
Ez a lista minden héten változik, van hogy csak 10 különböző név van benne, vangy hogy több, esetleg kevesebb van a táblázatban

Például:
1) minden anna@abc.com-hoz tartozó jegyet ami a képen látszik tegyen egy pdf-be
2) kreálja meg a levelet (a pdf-el) és küldje ki a címzettnek (van erre egy To mező beállítva) és egy Cc-nek (szintén van erre mező beállítva)
Az ide tartozó részek már előre megvannak és mint írtam minden megy úgy ahogy kell hogy ha csak 1 emberről van szó.
3) ezután keresse meg a következő embert, kreálja meg a pdf-et és küldje ki annak is a levelet, majd ismételje ezt addig ameddig van név a Submitter (E3) mezőben

Előre is köszönöm a segítségeteket.

(#2708) sztanozs válasza Nikkie (#2707) üzenetére


sztanozs
(őstag)

Készítettem egy macrót - a többi részt elolvasva, az hiszem már itt hibázik a kérdés

[ Szerkesztve ]

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

(#2709) Ferenc.


Ferenc.
(lelkes újonc)

Sziasztok!

Örülök, hogy találtam olyan aktív magyar fórumot ahol foglalkoznak még a visual basic-el. Egy kedves, nyugdíjas ismerősömnek szeretnék segíteni, mert már több mint 10 éve a visual basic 6 programról álmodik, hogy szeretne vele programozni. Van is könyve a programról, leírásokkal. S most már számítógépe is van. Gondoltam segítek neki, nem lehet bonyolult.. Én személy szerint nem értek semmit hozzá, én csak beszerezni szeretném neki ezt a programot a számítógépére, de hiába írok be a google-ba bármit, sehol nem lehet se megvenni, se letölteni ( pár iso-t letöltöttem, de lemezre kiírva semmi használható nem volt tehát nem a visual basic 6 volt).

Aztán a visual studio 6 -ra kezdtem rákeresni( ha jól látom a studio része a visual basic), de a studiot sem tudom beszerezni. Így azért írok ide, hogy ha valaki tudna segíteni abban hogy a visual basic 6 -ot, hogy tudom beszerezni, ( cd kulcsunk van), tehát csak a cd tartalmak kellenének( cd1 cd2 , msdn) library), akár csak neten átküldve, s természetesen honorálnánk is! Tehát ha valaki tud segíteni ebben kérem írjon!

Ismerősöm kívánságát szeretném teljesíteni, meg valamennyit már ért a visual basic 6 -hoz régről ezért is ragaszkodik ehhez a verzióhoz ( tudom van már sokkal újabb, de azzal nem boldogulna s a ragaszkodás nagy úr), tehát ezért kell a visual basic 6 vagy visual studio 6 (nem tudom melyik a helyes kifejezés). S igaz hogy a számítógépe windows 8 , lassan win 10 , de az éjszakát azzal töltöttem, hogy utána nézzek, hogy ezt a visual basic 6 -ot hogy lehet feltenni windows 7/8/10 -es gépre, s van rá megoldás! ( Visual Studio 6.0 Installer wizard v.4.5 ), tehát megoldható, így "csak" maga a szóban forgó programmal, a visual basic 6 beszerzésénél akadtam el, s nincs ötletem.

Köszönöm szépen előre is a segítséget!

(#2710) martonx válasza Ferenc. (#2709) üzenetére


martonx
(PH! addikt)

Nézd aranyos a törekvésed, de lássuk be a Visual Basic 6 nem csak hogy régi, de az informatikában már egyenesen ősi a maga 20 éves korával. Őszintén meglepődnék rajta, hogy ha valahol az internet legeldugottabb bugyraiban sikerülne is fellelned, sikerülne-e vajon feltelepítened :D

A bácsi teljesen nyugodtan elkezdhet programozni helyette a legújabb Visual Basic nyelven, hiszen maga a basic szintaxis alig-alig változott, hello world-öt nem nehéz bármilyen nyelven írni :D

Az meg ne tántorítson el a legújabbtól, hogy de nektek a VB6-hoz van licenszetek, hiszen időközben az újabb verziók ingyenesek lettek :K és az se vezessen félre, hogy a VB6-hoz van könyvetek, hiszen az internet tele van könyvekkel, és könyvet is egyszerűbb egy napra kész nyelvhez találni, mint egy 20 éveshez.

Keresek szabadúszó webfejlesztő frontendes kollégát távmunkában ASP.NET-es projektekhez!

(#2711) Ferenc. válasza martonx (#2710) üzenetére


Ferenc.
(lelkes újonc)

Köszönöm a választ! Akkor újabb verzió kell, utána nézek, de melyik verziót ajánljátok ami fut windows 8 vagy 10 -es gépen, de eléggé hasonló kinézetre a visual basic 6 -hoz?

[ Szerkesztve ]

(#2712) Ferenc.


Ferenc.
(lelkes újonc)

Jó hírem van! Egy utolsó próbát még adtam magamnak ma este hogy hátha meg lesz a visual basic 6 ,új gépre, s bele vetettem magam az internet bugyraiba..

Egy youtube videó hozzászólása között akadtam egy linkre, ami elvileg a vb6 -ra vezet, ami olyan hogy megy új op rendszereken is, szkeptikusan letöltöttem, majd feltelepítettem, s legnagyobb meglepetésemre, működik! Itt a link: [link]

Igaz most windows 7 -re raktam fel, de ha ezen megy akkor mennie kell win 8/10 -en is szerintem, de az majd holnap derül ki, akkor megyek a bácsihoz telepíteni. S itthon most olyannyira belejöttem ,hogy még meg is magyarosítottam a VB6 -ot! :) Ezen magyar honlap segítségével: [link] , s ez is működik, így most már magyar a VB6. No azt hiszem én így mindent megtettem amit lehet, az ügy érdekében.
S lényeg ezzel, hogy csak van megoldás, hogy aki akarja, tudja használni a vb6 -ot új gépeken is, hiába a 20 éves kora:) Sok sikert mindenkinek a továbbiakban!

[ Szerkesztve ]

(#2713) -conrad-


-conrad-
(PH! addikt)

Sziasztok,
most ismerkedem a VBA-val, és lenne is egy kérdésem ahol elakadtam:
Írtam egy függvényt, működik rendesen. Azt szeretném, hogy mindig elérjem mert sokszor kell, így a personal.xlsb-be mentettem, átneveztem az egyik modult "fuggvenyek"-re, oda akarom majd tenni az összeset ami ilyen egyedi.
A problémám az, hogy nem férek hozzá egyszerűen, tehát ha elkezdem gépelni, hogy "=függvényne..." akkor nem dobja be a függvényneve"-t, hanem csak úgy érem el, hogy "=PERSONAL.XLSB!függvényneve()"

Meg lehet azt oldani, hogy ne kelljen mindig megadni a personal.xlsb-t? Hova mentsem?
(minden munkafüzetbe macera betenni, mert kb. 10 percig használom és nyitom a következőt)

Köszi :)

(#2714) Bobrooney válasza -conrad- (#2713) üzenetére


Bobrooney
(senior tag)

Igen, függvényt (Function) írj ne eljárást (Sub).
Vagy mindig más fájlba szeretnéd használni 1 másik fájlban lévő függvényt??

[ Szerkesztve ]

Eladó: Denon DA-300, Audiolab P8000-Q8000 előfok-végfok páros

(#2715) Delila_1 válasza -conrad- (#2713) üzenetére


Delila_1
(PH! kedvence)

A függvényvarázslóval hívd meg, ott kiválaszthatod a felhasználói kategóriát, abból meg az éppen szükséges függvényedet.

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

Útvonal

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