Hirdetés
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Philips LCD és LED TV-k
- Nem kéri tovább a nekik fejlesztett csúcs-GeForce-ot Kína?
- Apple MacBook
- Hővezető paszták
- Házimozi belépő szinten
- ZIDOO médialejátszók
- Gaming notebook topik
- Projektor topic
-
2700 - 2601
3204 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Delila_1
veterán
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.ColorMost már csak arra kéne rájönni, hogy a tartalmat hogyan másoljam mellé.

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.
-
bundli
tag
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..
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.ColorMost már csak arra kéne rájönni, hogy a tartalmat hogyan másoljam mellé.

-
bundli
tag
Ö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.
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..
-
Delila_1
veterán
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)
Ö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.
-
bundli
tag
Ö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.
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)
-
Delila_1
veterán
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.
Ö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.
-
bundli
tag
Nézd meg ezt a füzetet. Másik gépen állítottam össze.
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.
-
Delila_1
veterán
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 3Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.
Nézd meg ezt a füzetet. Másik gépen állítottam össze.
-
Delila_1
veterán
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 3Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.
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 -
Delila_1
veterán
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 3Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.
Most éppen baj van az Excelemmel. Majd holnap, ha sikerül rendbe tenni, de csak délután lesz időm rá.
-
bundli
tag
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 3Ha ez a szám változik, aszerint kéne megfelelő mennyiségű Teszt X-et generálni.
-
bundli
tag
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
4 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:

Jó. hogy írtad, az & sor-t vedd ki. Helyesen:
Na igen, pont azt a részét nem értettem amit ki kellett venni

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
) -
Delila_1
veterán
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
4 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:

Lejárt a szerkesztési idő.
A B2
4 rendesen B2:D4. -
Delila_1
veterán
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?

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
4 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:

-
bundli
tag
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?

-
Delila_1
veterán
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.
Az egészet átírtam.
Itt van. -
bundli
tag
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.
-
Delila_1
veterán
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!

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.
-
bundli
tag
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 SubKö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!

-
Delila_1
veterán
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.

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á:
És felfedve a formulákat:
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 -
YAN0U
csendes tag
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 SubHa egy füzet ThisWorkbook lapján Workbook_Open eseményvezérelt makró van, akkor a nyitásakor az végrehajtódik.
Upsz! felületesen olvastam végig az üzeneted
Ez eszembe sem jutott, pedig szoktam használni.Köszönöm
-
bundli
tag
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.

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á:
És felfedve a formulákat:
-
YAN0U
csendes tag
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 SubHa egy füzet ThisWorkbook lapján Workbook_Open eseményvezérelt makró van, akkor a nyitásakor az végrehajtódik.
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 -
Delila_1
veterán
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 = TruexlWorkBook = 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
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 SubHa egy füzet ThisWorkbook lapján Workbook_Open eseményvezérelt makró van, akkor a nyitásakor az végrehajtódik.
-
YAN0U
csendes tag
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 = TruexlWorkBook = 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
-
Delila_1
veterán
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.PasteEz 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!

Reggel nem figyeltem eléggé.

Í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 SubEz a makró az A1:E5 tartományt annyiszor másolja folyamatosan egymás alá, ahányszor elindítod.
-
Delila_1
veterán
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.PasteEz 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!

Range("A1:E5").Copy Range("A1").Offset(5)
A Select és az ActiveCell utasítást a lehetőség szerint kerülni kell.
-
Apollo17hu
őstag
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.PasteEz 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!

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.
-
bundli
tag
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.PasteEz 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!

-
Zsolt_974
tag
Bocs, hogy nem válaszoltam, de nem volt rá időm.

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".

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.

-
Bobrooney
senior 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 SubVé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?Lehet az USB-t más metódusban tudod lekérdezni. [link]
-
Zsolt_974
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 SubVé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? -
Bobrooney
senior tag
Köszönöm a gyors választ.

Sajnos ezzel is csak a következőt kapom vissza, hogy
COM 1
COM 9Viszont 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.
Viszont kitartóan. 
Zsolt
Gondolom erre gondolsz: MsgBox(queryObj("Description"))
Akkor ha a MsgBox helyett egy String-be rakod bele? -
Zsolt_974
tag
Köszönöm a gyors választ.

Sajnos ezzel is csak a következőt kapom vissza, hogy
COM 1
COM 9Viszont 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.
Viszont kitartóan. 
Zsolt
-
Bobrooney
senior 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.

Üdv. Zsolt
[link]
Ahogy nézem itt iterálással oldotta meg. Remélem jó lesz
-
Zsolt_974
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.

Üdv. Zsolt
-
Fleed
aktív 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
-
sztanozs
veterán
2652 hsz, illetve alatta eggyel.
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) = TrueHa eltünteti, amikor leveszed a fókuszt:
Listbox1.HideSelection = FalseJa amúgy ez kb 3 perc google volt. Ha nem megy az angol, akkor gyorsan állj neki.
-
Atomantiii
addikt
-
DasBoot
aktív tag
-
DasBoot
aktív tag
-
DasBoot
aktív tag
Ha ez egy form, akkor szerintem a modulhoz hasonlóan lehet exportálni.
Ezek control-ok.
-
DasBoot
aktív 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.
-
Apollo17hu
őstag
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
Ha ez egy form, akkor szerintem a modulhoz hasonlóan lehet exportálni.
-
Bobrooney
senior 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
Hát ebből a leírásból nem hiszem hogy bárki is érteni fogja, hogy mit szeretnél.
-
DasBoot
aktív 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
-
Atomantiii
addikt
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.
-
Atomantiii
addikt
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?
-
sztanozs
veterán
Felteszem vagy a komponens, vagy az adatbázis (mező), vagy a végén a megjelenítő nem támogatja az Unicode-ot - ezért kerül ez konvertálásra időközben.
-
martonx
veterán
A visual studio 6.0-nak az adatbázis szerkesztő programja. Tudom, hogy eléggé elavult dolog az már 2015-ben, csak van egy programom amin kicsit foltozgatni kell és én még a vb6-hoz értek jobban, a mostani legújabb verziók nagyon kínaiak nekem.
Akkor ebben nem tudok segíteni. Minden ami 2005 előtti, az számomra nem létezik.
-
Atomantiii
addikt
-
martonx
veterán
Nem tudom mi az a visdata.
-
Atomantiii
addikt
A visdatával hogy tudok az adatbázisba ilyen karaktereket írni?
►, ▲ és ▼, ms access helyesen írja, de ha visdatával akarom megnyitni akkor átalakítja >, ˇ és v karakterekre ami még jó is lenne ha ez a három karakter egyforma lenne magasságban egymással.
Erre valakinek valami ötlete?
-
#14595328
törölt tag
Szerencsére ilyen mélyen nem kellett belefolynom az Excel táblák piszkálásába.

Mivel itt már a form sem nyílik meg, gyanús, hogy igazad lesz és nem megfelelő dll-t keres a program, ami miatt összeomlik, mielőtt megjelenne valami.Egy hiba loggal többet lehetne kezdeni.
-
martonx
veterán
Az hagyján, hogy van-e excel a másik gépen, de pont ugyanaz a verziója, pont ugyanaz a két gép nyelve stb...
Amilyen egyszerűnek tűnik, akkora szopás tud lenni az Office automatizáció. -
#14595328
törölt tag
Sziasztok!
VB-ben csináltam egy programot (.net3.5) és szeretném egy másik gépen is futtatni, de mindig csak azt írja ki, hogy hibát észlelt és leáll! Semmi extra nincs benne, form, xls-ből olvasás és txt-be írás. A célgépen fent van a .Net 3.5. A \bin-ből szedtem az exe-t. Telepíteni nem tudok, mert a másik gépen nincs adminom..
Van Excel a másik gépen? Mikor olvass a program az xls-t?
Rakj egy Try-Catch-et a Load eventbe, majd írassad ki a hibát.
-
G.I.JOE
senior tag
-
martonx
veterán
Sziasztok!
VB-ben csináltam egy programot (.net3.5) és szeretném egy másik gépen is futtatni, de mindig csak azt írja ki, hogy hibát észlelt és leáll! Semmi extra nincs benne, form, xls-ből olvasás és txt-be írás. A célgépen fent van a .Net 3.5. A \bin-ből szedtem az exe-t. Telepíteni nem tudok, mert a másik gépen nincs adminom..
Tegyél bele hibakezelést, és írasd ki, hogy mi a hiba

-
G.I.JOE
senior tag
Sziasztok!
VB-ben csináltam egy programot (.net3.5) és szeretném egy másik gépen is futtatni, de mindig csak azt írja ki, hogy hibát észlelt és leáll! Semmi extra nincs benne, form, xls-ből olvasás és txt-be írás. A célgépen fent van a .Net 3.5. A \bin-ből szedtem az exe-t. Telepíteni nem tudok, mert a másik gépen nincs adminom..
-
Atomantiii
addikt
A visdatával hogy tudok az adatbázisba ilyen karaktereket írni?
►, ▲ és ▼, ms access helyesen írja, de ha visdatával akarom megnyitni akkor átalakítja >, ˇ és v karakterekre ami még jó is lenne ha ez a három karakter egyforma lenne magasságban egymással.
-
cigam
titán
-
cigam
titán
Sziasztok!
egy sima .txt fájlból, hogy tudom feltőlteni a tömbömet?
VB kódban így nézki:
tomb = Array("A1", "B2", "C3", "D4", "E5")a .txt fájl meg így:

ezt szeretném betőltetni, mert így egyszerübb enne bővíteni a listát.
a másik kérdésem:
- a tömb egyik elemének a helyét, hogy tudom meghatározni, ha ismerem az elemet:
ugye tomb(1) = B2 de D4=tomb(?)A Split megoldás lehet a beolvasott szöveg szétszabdalására.
A keresésre pedig az Array.IndexOf használata adhat megoldást.
-
alfa20
senior tag
Sziasztok!
egy sima .txt fájlból, hogy tudom feltőlteni a tömbömet?
VB kódban így nézki:
tomb = Array("A1", "B2", "C3", "D4", "E5")a .txt fájl meg így:

ezt szeretném betőltetni, mert így egyszerübb enne bővíteni a listát.
a másik kérdésem:
- a tömb egyik elemének a helyét, hogy tudom meghatározni, ha ismerem az elemet:
ugye tomb(1) = B2 de D4=tomb(?) -
cigam
titán
Csinálok mindjárt egy próbát a gépemen, nem szabadna villogjon...
C#-ban lesz elsőre (VB.NET már rég nincs a kezemben).
Itten van - semmit nem állítottam a formon és egyáltalán nem villog:
namespace TestControlMove
{
public partial class Form1 : Form
{
bool MozogE = false;
Point Eredeti;
public Form1()
{
InitializeComponent();
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Eredeti = e.Location;
MozogE = true;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (MozogE)
{
pictureBox1.Location = pictureBox1.Location + new Size(e.X - Eredeti.X, e.Y - Eredeti.Y);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
MozogE = false;
}
}
}Nem probléma, c#-ban is megcsináltam, de ott se jött össze

Köszi a mintát
, este kipróbálom. -
sztanozs
veterán
Addig eljutottam, hogy nem írom ki újra a szöveget 1 pixellel feljebb, mert ez vmiért ette a procit, az egyik mag 100%-on pörgöt.
Most átalakítom a szöveget bitmap képpé, és ezt a képet pöckölöm pixelenként. A prociterhelés már elfogadható 20% körül mocorog, szóval nem a proci fogja vissza a scroll sebességét, de még mindég nem az igazi.3 dolog jutott eszembe:
- Nem az a baj, hogy a StudioComunity Edition-ban fordítom le, ezért nem natív Win32 app lesz, hanem "csak" egy .NET program?-Ahogy nézem a WPF programok a csilivilire vannak kihegyezve. Ha abban próbálnám lekódolni, megszünne a villogás?
- Nem lehet hogy az a baj, hogy a listbox-ot tologatom? Úgy is lehetne, hogy a listbox marad fixen, és benne a képet tolom felfele? Mintha a listbox egy ablak lenne, amit mögött elhúzom a képet.
Csinálok mindjárt egy próbát a gépemen, nem szabadna villogjon...
C#-ban lesz elsőre (VB.NET már rég nincs a kezemben).
Itten van - semmit nem állítottam a formon és egyáltalán nem villog:
namespace TestControlMove
{
public partial class Form1 : Form
{
bool MozogE = false;
Point Eredeti;
public Form1()
{
InitializeComponent();
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Eredeti = e.Location;
MozogE = true;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (MozogE)
{
pictureBox1.Location = pictureBox1.Location + new Size(e.X - Eredeti.X, e.Y - Eredeti.Y);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
MozogE = false;
}
}
} -
cigam
titán
Addig eljutottam, hogy nem írom ki újra a szöveget 1 pixellel feljebb, mert ez vmiért ette a procit, az egyik mag 100%-on pörgöt.
Most átalakítom a szöveget bitmap képpé, és ezt a képet pöckölöm pixelenként. A prociterhelés már elfogadható 20% körül mocorog, szóval nem a proci fogja vissza a scroll sebességét, de még mindég nem az igazi.3 dolog jutott eszembe:
- Nem az a baj, hogy a StudioComunity Edition-ban fordítom le, ezért nem natív Win32 app lesz, hanem "csak" egy .NET program?-Ahogy nézem a WPF programok a csilivilire vannak kihegyezve. Ha abban próbálnám lekódolni, megszünne a villogás?
- Nem lehet hogy az a baj, hogy a listbox-ot tologatom? Úgy is lehetne, hogy a listbox marad fixen, és benne a képet tolom felfele? Mintha a listbox egy ablak lenne, amit mögött elhúzom a képet.
Termeszetesen nem listbox, hanem picturebox ...
-
cigam
titán
Addig eljutottam, hogy nem írom ki újra a szöveget 1 pixellel feljebb, mert ez vmiért ette a procit, az egyik mag 100%-on pörgöt.
Most átalakítom a szöveget bitmap képpé, és ezt a képet pöckölöm pixelenként. A prociterhelés már elfogadható 20% körül mocorog, szóval nem a proci fogja vissza a scroll sebességét, de még mindég nem az igazi.3 dolog jutott eszembe:
- Nem az a baj, hogy a StudioComunity Edition-ban fordítom le, ezért nem natív Win32 app lesz, hanem "csak" egy .NET program?-Ahogy nézem a WPF programok a csilivilire vannak kihegyezve. Ha abban próbálnám lekódolni, megszünne a villogás?
- Nem lehet hogy az a baj, hogy a listbox-ot tologatom? Úgy is lehetne, hogy a listbox marad fixen, és benne a képet tolom felfele? Mintha a listbox egy ablak lenne, amit mögött elhúzom a képet.
-
sztanozs
veterán
Köszi az irányítást! Anno ZX81-en írtam azt, hogy 10 goto 20, és azóta hány év telt el...

Most pl. ott akadtam el, hogy villog a "scroll". (A form-on belül egy imagebox-ot tologatok pixelenként, és az időzítéssel szabályozom a scroll sebességét)Próbáltam a doublebuffer-t beszűrni, de vagy rosszul csináltam(ezt is), vagy nem segít.
Gondolom a directx-es abla(időzítés?) segítene a dolgon, de ahogy néztem nincs benne a directx lehetősége, csak c++-on és ott is valami fejlesztői fiókot akar tőlem.Én bénázok, vagy ezzel az ingyenes verzióval tényleg nem lehet directx-es applikációt gyártani?
A form beállításai között van valami rajzolási beállítás - lehet, hogy a doublebuffering.
A lényeg az, hogy ne próbálj plusz rajzolásokat beleerőszakolni a rendszerbe, próbáld meg kihasználni azt, amit a rendszer ad. -
cigam
titán
Próbálj objektumorientáltan gondolkozni - a left/right/mid csak a visszafele kompatibilitás miatt maradt bent.
Amúgy nem az IO zavar be, hanem az ablak Left paramétere.
Használd inkább a String objektum beépített függvényeit:
szoveg = left(szoveg, 4)
helyett
szoveg = szoveg.Substring(0, 4)Köszi az irányítást! Anno ZX81-en írtam azt, hogy 10 goto 20, és azóta hány év telt el...

Most pl. ott akadtam el, hogy villog a "scroll". (A form-on belül egy imagebox-ot tologatok pixelenként, és az időzítéssel szabályozom a scroll sebességét)Próbáltam a doublebuffer-t beszűrni, de vagy rosszul csináltam(ezt is), vagy nem segít.
Gondolom a directx-es abla(időzítés?) segítene a dolgon, de ahogy néztem nincs benne a directx lehetősége, csak c++-on és ott is valami fejlesztői fiókot akar tőlem.Én bénázok, vagy ezzel az ingyenes verzióval tényleg nem lehet directx-es applikációt gyártani?
-
sztanozs
veterán
Már majdnem működik a program, csak a lényeget nem tudja

Pl. a szövegosztályok metódusait (ha jól tippelek így hívják őket), miért nem hagyja békén?
Pl. a szöveg = left(szöveg,4)-re hibát jelez, mert őszerinte a Left () az a baloldali éltől való távolság pixelben. (ha jól értettem azt amire panaszkodik)Próbálj objektumorientáltan gondolkozni - a left/right/mid csak a visszafele kompatibilitás miatt maradt bent.
Amúgy nem az IO zavar be, hanem az ablak Left paramétere.
Használd inkább a String objektum beépített függvényeit:
szoveg = left(szoveg, 4)
helyett
szoveg = szoveg.Substring(0, 4) -
cigam
titán
Már majdnem működik a program, csak a lényeget nem tudja

Pl. a szövegosztályok metódusait (ha jól tippelek így hívják őket), miért nem hagyja békén?
Pl. a szöveg = left(szöveg,4)-re hibát jelez, mert őszerinte a Left () az a baloldali éltől való távolság pixelben. (ha jól értettem azt amire panaszkodik) -
cigam
titán
-
sztanozs
veterán
-
cigam
titán
pl.:
string[] AllLines = File.ReadAllLines(file);AllLines.Length vagy AllLines.LongLength
Automatice megpróbálja felismerni - amennyiben UTF-8 BOM-mal vagy UTF-32.
Ha UTF-8 BOM nélkül, vagy ASCII valami kódlappal, akkor azt nem ismeri fel.Eredetiből:
This method attempts to automatically detect the encoding of a file based on the presence of byte order marks. Encoding formats UTF-8 and UTF-32 (both big-endian and little-endian) can be detected.Köszi! Működik

Akkor az éketes szöveget karakterenként csereberélgessem, vagy van gyorsabb, 1xübb módszer?
-
sztanozs
veterán
Amikor a File.ReadAllLines-al feltöltök egy tömböt, akkor hogyan tudom megállapítani, hogy hány elemes lett a tömb? Magyarul hány sort olvasott be.
A manuel azt is írja, hogy automatice felismeri a karakterkódolást, ehhez képest a hosszú ékezetes magánhangzók problémásak.
Egy notepaddal írt szöveget olvasnék be.
pl.:
string[] AllLines = File.ReadAllLines(file);AllLines.Length vagy AllLines.LongLength
Automatice megpróbálja felismerni - amennyiben UTF-8 BOM-mal vagy UTF-32.
Ha UTF-8 BOM nélkül, vagy ASCII valami kódlappal, akkor azt nem ismeri fel.Eredetiből:
This method attempts to automatically detect the encoding of a file based on the presence of byte order marks. Encoding formats UTF-8 and UTF-32 (both big-endian and little-endian) can be detected. -
cigam
titán
Amikor a File.ReadAllLines-al feltöltök egy tömböt, akkor hogyan tudom megállapítani, hogy hány elemes lett a tömb? Magyarul hány sort olvasott be.
A manuel azt is írja, hogy automatice felismeri a karakterkódolást, ehhez képest a hosszú ékezetes magánhangzók problémásak.
Egy notepaddal írt szöveget olvasnék be.
-
martonx
veterán
-
cigam
titán
A form1-en a keypreview true-ra van állítva.
-
martonx
veterán
Mindjárt bele is futottam az első problémába:
Public Class Form1
' A konyvtar változóban tárolom el, hogy melyik könyvtárban fut a program.
Dim konyvtar As String = Application.StartupPath
' Feltölti a fájl listát a .txt fájlokkal
Private Sub Fajllistafeltoltes()
Dim dir As New IO.DirectoryInfo(konyvtar)
For Each fajl As IO.FileInfo In dir.GetFiles
If fajl.Extension = ".txt" Then
ListBox1.Items.Add(fajl)
End If
Next
ListBox1.SetSelected(0, True)
End Sub
' Figyeli a lenyomott gombokat
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Enter
MsgBox("Segítség!!!")
End Select
End Sub
' Indul a program
' - betölti a fájl listát
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Fajllistafeltoltes()
End Sub
End ClassMiért kell belekattintani a listbox-ba, hogy észrevegye az ENTER leütését?
Hú, de elképesztő rég volt, hogy winforms-oztam. Annyi rémlik, hogy az egész ablakod tualjdonságai között kell engedélyezni valami keyakármi tulajdonságot. És akkor már tényleg bárhol figyelni fogja a gomb nyomást, amíg aktív az ablakod.
-
cigam
titán
Mindjárt bele is futottam az első problémába:
Public Class Form1
' A konyvtar változóban tárolom el, hogy melyik könyvtárban fut a program.
Dim konyvtar As String = Application.StartupPath
' Feltölti a fájl listát a .txt fájlokkal
Private Sub Fajllistafeltoltes()
Dim dir As New IO.DirectoryInfo(konyvtar)
For Each fajl As IO.FileInfo In dir.GetFiles
If fajl.Extension = ".txt" Then
ListBox1.Items.Add(fajl)
End If
Next
ListBox1.SetSelected(0, True)
End Sub
' Figyeli a lenyomott gombokat
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Enter
MsgBox("Segítség!!!")
End Select
End Sub
' Indul a program
' - betölti a fájl listát
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Fajllistafeltoltes()
End Sub
End ClassMiért kell belekattintani a listbox-ba, hogy észrevegye az ENTER leütését?
-
martonx
veterán
-
cigam
titán
-
martonx
veterán
-
Bobrooney
senior tag
-
cigam
titán
64bites W8.1-re felmegy a VB2010express? Vagy inkább a VSCommunity-t érdemes felrakni?
-
Delila_1
veterán
-
Don_
tag
-
sztanozs
veterán
Sziasztok!
Van egy 12 Userformból álló kérdőív, aminek az egyik formja egy listboxot tartalmaz. A listbox forrásának viszont a hét minden napján mást kellene megadnom. Nem akarnék minden nap beleturkálni és manuálisan átírogatni a forrást, hetente egyszer beálligatnám, hogy a hét melyik napján melyik forrást használja a listbox és ennyi.
Van esetleg ötletetek hogyan lehet megoldani?

vagy named range-vel...
-
Delila_1
veterán
Sziasztok!
Van egy 12 Userformból álló kérdőív, aminek az egyik formja egy listboxot tartalmaz. A listbox forrásának viszont a hét minden napján mást kellene megadnom. Nem akarnék minden nap beleturkálni és manuálisan átírogatni a forrást, hetente egyszer beálligatnám, hogy a hét melyik napján melyik forrást használja a listbox és ennyi.
Van esetleg ötletetek hogyan lehet megoldani?

Lehet, hogy nem erre gondoltál, majd megírod.
-
martonx
veterán
Sziasztok!
Van egy 12 Userformból álló kérdőív, aminek az egyik formja egy listboxot tartalmaz. A listbox forrásának viszont a hét minden napján mást kellene megadnom. Nem akarnék minden nap beleturkálni és manuálisan átírogatni a forrást, hetente egyszer beálligatnám, hogy a hét melyik napján melyik forrást használja a listbox és ennyi.
Van esetleg ötletetek hogyan lehet megoldani?

Makróval?
-
Don_
tag
Sziasztok!
Van egy 12 Userformból álló kérdőív, aminek az egyik formja egy listboxot tartalmaz. A listbox forrásának viszont a hét minden napján mást kellene megadnom. Nem akarnék minden nap beleturkálni és manuálisan átírogatni a forrást, hetente egyszer beálligatnám, hogy a hét melyik napján melyik forrást használja a listbox és ennyi.
Van esetleg ötletetek hogyan lehet megoldani?

-
Delila_1
veterán
-
Fl3x
aktív tag
-
Delila_1
veterán
-
Fl3x
aktív tag
Sziasztok,
most kezdegetek vba-bna programozást "tanulni" és olyan kérdésem lenne h a print utasítás az hova íródik ki? Sehol nem találom és eléggé zavaró.
Segítséget előre is köszi!
Üdv.: Fl3x
-
fPApi
őstag
1. Sajnos nem adtam egyedi nevet (balga módon). Utólag ezt meg lehet tenni valahogy? Néztem a tulajdonságot, de nem találtam ilyet.
2. Ezt megnézem, hátha ... -
martonx
veterán
Csak ötletelek, nem fogok érdemben foglalkozni vele:
1. Egyrészt, ha egyedi nevet adtál az objektumaidnak, akkor az alapján vissza is tudod keresni.
2. Mondjuk egy for ciklussal végig tudod nézni az összes táblázatot. -
martonx
veterán
Köszi! Végülis elvetettem.. viszont van egy másik probléma. A lényeg az lenne, hogy betöltéskor átnézzen egy bizonyos könyvtárat, mondjuk c:\temp. Ott vannak fileok, legyen mondjuk fac_gyál.data, fac_pest.data. Ha léteznek a fájlok, az ablakban megjelenik hozzá egy option button (dinamikusan, ahány város...). A fájl tartalmazna pár adatot (cella 1-10, sor 1-10, gép 1-10)
pl.:
cella1, sor1, gép1
cella1, sor1, gép2
cella1, sor1, gép3Az is kellene, hogy ezt az első kb. 3 sort beolvassa, ha létezik a fájl, és rákattintva az option buttonra előjönne a többi lehetőség is. PL. Kiválasztom gyált, akkor a fájltartalom alapján felajánlott 1-10-es cellától eljutok valamelyik gépig option buttonokkal.. Előre is köszi a segítséget!
Ez is megoldható, mondjuk ehhez se az excel-t tartom a legjobb eszköznek. Milyen segítséget szeretnél? Megírni senki nem fogja helyetted a programot.
Új hozzászólás Aktív témák
-
2700 - 2601
3204 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Filmvilág
- Windows 11
- Mibe tegyem a megtakarításaimat?
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Feltalálta a Google a keresőmotort
- Philips LCD és LED TV-k
- BestBuy topik
- Nem kéri tovább a nekik fejlesztett csúcs-GeForce-ot Kína?
- Motoros topic
- További aktív témák...
- 27% - ASUS Hyper M. 2 X16 V2 4X M. 2 PCI-e SSD Beépítõ Kártya!
- AKCIÓ! ASUS H81M-A H81 chipset alaplap garanciával hibátlan működéssel
- Bomba ár! Lenovo ThinkPad X12 Detachable i5-11G I 16GB I 512SSD I FHD+ Touch I Cam I W11 I Gari!
- Lenovo Thinkstation P320 MT,E3-1220 v6,16GB DDR4,256GB SSD,Quadro M2000 4GB VGA,WIN11
- Samsung Galaxy S24 / 8/128GB / Kártyafüggetlen /12Hó Garancia / Akku: 100%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


4 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:
)










