Keresés

Részletes keresés

Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23182

Előjeles esetben negatív az a szám, amelyiknek a legmagasabb helyiértékű bitje 1.

Előzmény: Sánta Kutya (SK) (23181)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23181

Ugyanazt a számot tekintheted előjeles és előjel nélküli egésznek is. Maga az 11111111 nem egyértelmű, ha nem rendeltél típust hozzá. A legtöbb nyelv ismeri a "signed int" és "unsigned int" típusokat ugyanannyi biten (bár ez éppen C-s megnevezés). Viszont ha -1-nek tekinted, az bitszámtól függetlenül minden egész típusra jó lesz, ha meg előjel nélkülinek, az 8 biten 255, 16 biten 65535 stb. A -1 meg örök és megbonthatatlan. :-)

 

Előjeles: -128 - +127

Előjel nélküli: 0 - +255

stb. több biten is.

 

Egyébként az előző hozzászólásomban az az érdekes, hogy beírás közben jöttem rá magam is. :-)

Előzmény: tbando (23180)
tbando Creative Commons License 2013.11.28 0 0 23180

Most nagy tudatlanságról tanuskodó kérdést teszek fel: az 11111111 a basicben miért -1 és miért nem 255?

Előzmény: Sánta Kutya (SK) (23178)
tbando Creative Commons License 2013.11.28 0 0 23179

Hm. Nem tudtam. Igaz, vba-ban sosem használtam. Viszont most esett le a tantusz, hogy retro image miért írt egy régi hozzászólásában  valami ilyesmit: a=-(b=c) *d. Kösz.

 

Előzmény: Fferi50 (23177)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23178

Régi BASIC-es hagyomány az igaz értéket -1-nek venni. Ennek az az alapja, hogy ha egy byte-ot (szót stb.) feltöltünk csupa egyes bittel, akkor a kapott szám előjeles egészként -1-nek felel meg. Vagyis ez az a szám, amelyiknek minden bitje 1 (és így pl. a bitenkénti logikai műveletekben is feltétlenül igaz értékként viselkedik).

Előzmény: Fferi50 (23177)
Fferi50 Creative Commons License 2013.11.28 0 0 23177

Szia!

 

Annyi igaz, hogy a hamis mindkét helyen = 0.

 

Az igaz viszont a munkalapon = 1, VBA-ban pedig = -1.

 

Próbáld ki a VBA-ban a True * 1 kifejezést. Eredmény: -1.

 

Csak nyilván, nagyon ritkán "számolunk" vele, inkább használjuk a logikai "értéket". Pedig, mint az adott példa mutatta, egyszerűbb is lehet a képlet  esetenként, ha számnak tekintjük.

 

Üdv.

Előzmény: tbando (23176)
tbando Creative Commons License 2013.11.28 0 0 23176

Apropos: Hogy-hogy nem ugyanaz a szám van rendelve az igaz/hamis-hoz a vba-ban és a munkalapon? Én idáig abban a hiszemben voltam, hogy a hozzárendelt számok mindkét helyen 1 és 0.

Előzmény: Fferi50 (23174)
tbando Creative Commons License 2013.11.28 0 0 23175

Ez a legkreatívabb valóban :))))

 

Az előbbi meg a megoldásod elismerése mellett a saját figyelmetlenségemet díjazta :))))). 

Előzmény: Fferi50 (23174)
Fferi50 Creative Commons License 2013.11.28 0 0 23174

Szia!

 

Ez egy szerintem még szebb verzió:

 

E2-be a  képlet  =(D2="igen")*C2

 

Mivel a logikai kifejezéshez (igaz,hamis) is van számérték rendelve (ami a VBA-ban nem ugyanaz a szám, mint a munkalapon!!!)

 

Üdv.

 

ps. Tudom, a C oszlopnak szólt az elismerés.

 

 

Előzmény: tbando (23170)
lucabrazi Creative Commons License 2013.11.28 0 0 23173

Kösz!

 

 

 

Előzmény: tbando (23171)
tbando Creative Commons License 2013.11.28 0 0 23172

Úgy látom, mások se igen értik, hogy mit szeretnél. Ha még aktuális, tedd fel a Data.hu-ra, vagy küldd el priviben. Megnézem.

Előzmény: Tyorotyere (23139)
tbando Creative Commons License 2013.11.28 0 0 23171

Meg lehet. De attól függően, hogy mik az érényesítés feltételei, lehet egyszerű vagy komplikált.  Lehet, hogy simán alkalmazható az excel Adatok/érvényesítés parancsa, de lehet, hogy önmagában nem elég, és makrót kell az érvényesítéshez írni.  Ezért első lépésben nézd át az említett parancsot, és ha az nem elég, akkor írd meg a konkrét előírásaidat. 

Előzmény: lucabrazi (23169)
tbando Creative Commons License 2013.11.28 0 0 23170

:)))))

Előzmény: Fferi50 (23168)
lucabrazi Creative Commons License 2013.11.28 0 0 23169

Sziasztok!

 

Segítséget szeretnék kérni.

Meg lehet-e adni, pl.:hogy egy cellába csak bizonyos számokat és betűket lehessen írni.

Mást ne engedjen.

 

Köszönöm.

Fferi50 Creative Commons License 2013.11.28 0 0 23168

Szia!

 

Ha jól értelmezem a képet, akkor a C oszlopban található a kérdések (az igen válasz) pontértéke. Ekkor az eredmény oszlop E2 be írd be ezt a képletet:

=ha(D2="Igen";C2;0) és húzd végig az oszlopon.

 

Üdv.

Előzmény: makako6 (23164)
tbando Creative Commons License 2013.11.28 0 0 23167

Én is azt hiszem, hogy a legegyszerübb, ha az F-oszlopba beirod, hogy az adott kérdés igenje 1 vagy 2, az eredményoszlopba meg ezt a képletet:

 

=Ha(d2="igen";f2;0)

Előzmény: makako6 (23164)
Sánta Kutya (SK) Creative Commons License 2013.11.27 0 0 23166

Van rá valami nyomós okod, hogy a B oszlopban két adatot zsúfolj egy cellába? Ellenkezik a táblázatkezelés szellemével.

Előzmény: makako6 (23164)
tbando Creative Commons License 2013.11.27 0 0 23165

Fferinek igaza lehet. De nem csak az excel nyelve lehet eltérő a  két gépen, hanem a területi beállítások is. Írtam a korábbi hsz-emben, hogy hiába copy pasteltem be a Lin.ill  súgó mintapéldáját, az én gépemen nem működött. Azóta rájöttem, hogy miért nem. Hát azért, mert a súgó példa magyarított példa volt, tizedesvesszővel. Én meg a saját gépemen tizedespontot használok. Így mintapélda tizedesvesszője miatt az excelem néhány számot stringnek értelmezett, amit a Lin.ill nem akceptál. Nos ilyen banális beállítási hibákra is vadásszál.

 

De hagy kérdezzem meg újra: hogyan kell a kitevőket kapcsos zárójelbe tenni?

Előzmény: NPW (23162)
makako6 Creative Commons License 2013.11.27 0 0 23164

Sziasztok,

 

Segítséget szeretnék kérni, az alábbi dologban:

Van egy kérdőív, ahol a válasz legördülő listából "igen" és "nem" lehet.

Értékelésnél adott válaszoknál az "igen" válasz érhet 1 vagy 2 pontot kérdéstől függően, a "nem" mindenhol 0 pontot ér.

Cél, a listából kiválasztott "igen" választásánál a kérdéshez tartozó 1 vagy 2 ponttal számoljon a táblázat, "nem"-nél 0 ponttal a mellette levő oszlopban.

 

Próbáltam képletek / definiált nevek / kijelölésből új opciót, ahol volt a listában

 

"igen" - "igen." - "nem" , Hozzárendelt számok 1-2-0.

 

Viszont, választás után mégsem tudta számként értelmezni a mellette levő eredmény oszlop. 

Lehetséges ezt kivitelezni valahogyan?

 

A választ előre is köszönöm, képet csatoltam róla.

 

 

 

Fferi50 Creative Commons License 2013.11.27 0 0 23163

Szia!

 

Milyen nyelvű az otthoni Excel 2007-es otthon és milyen nyelvű az Excel 2010 a munkahelyen?

Mert a nyelvi beállítások okozhatnak problémát.

 

Üdv.

 

Előzmény: NPW (23162)
NPW Creative Commons License 2013.11.27 0 0 23162

A transzponálás akkor kell, ha egy sorban (vízszintesen egymás mellett) van az adatsor. Ha függőlegesen, akkor természetesen nem kell.

 

Viszont azt továbbra sem értem, hogy 2010-esben miért nem működik??????????

Előzmény: tbando (23125)
pimre Creative Commons License 2013.11.27 0 0 23161

Szia, köszönöm. Ezeket majd holnap tesztelem.

 

Ami az ékezetes változókat illeti én már beleütköztem a problémába. Idén egy bő fél éven át egy tagnyilvántartó programot írtam. Ez zömmel interaktív, amit userformokkal oldottam meg. Aztán amikor a program egy angol nyelvű office-t használó kollégám kezébe került, előjött, hogy nem fut a progam. Pontosabban Lost Visual Basic project hibát jelzett. És néhány nap kellett, míg kiderítettük, hogy a hibát a Userformok és a rajtuk elhelyezett ékezetes objektumok okozták. Ezeket néhány órás munkával kijavítottam, szerencsére a függvények és változók nevével nem volt gondja az Excelnek.

Szóval igazad van, és rossz szokásom, hogy használom a kódban az ékezeteket. Lám hová vezet a féktelen nacionalizmus:-))) Még szerencse, hogy nem rovásírást használtam:-)

Szóval ebben is egy nagy elhatározásra lenne szükségem, hogy ezentúl leszokjak az ékezetek használatáról a programkódokban.

Előzmény: Fferi50 (23160)
Fferi50 Creative Commons License 2013.11.27 0 0 23160

Szia!

 

Hogy még szebb legyen, egyáltalán nem kell aktívnak lennie a munkafüzetnek sem:

Az előzőekben leírtak akkor is működnek, ha a

 

Workbooks(wbnév).Activate

sort kihagyod.

 

Hiszen  ws.parent.name = wbnév.  (Azaz a ws munkalapod a wbnév nevű munkafüzetben van!)

 

Még egy tanács: én abszolut nem használom az ékezetes változókat, mivel nem hordozható. Nem tudhatod, hogy egy másik gépen milyen windows fut. Ha nem magyar, akkor az ékezetes, pláne a két pontos, vesszős betűk jól bekavarhatnak.

 

Üdv.

 

Előzmény: pimre (23158)
Fferi50 Creative Commons License 2013.11.27 0 0 23159

Szia!

 

Próbáld így:

Set eredm = ws.Range("A:A").Find(what:=kód, After:=Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

 

Üdv. 

Előzmény: pimre (23158)
pimre Creative Commons License 2013.11.27 0 0 23158

Ezt valóban nem tudtam. Egyébként amióta többen leírtátok, magam is kerülöm a select használatát, viszont tartományban történő keresésnél egyelőre nem tudom kiváltani:

 

dim eredm as Range

...

Workbooks(wbnév).Activate
ws.Range("A:A").Select 
Set eredm = Selection.Find(what:=kód, After:=Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

 

 

Előzmény: Fferi50 (23155)
tbando Creative Commons License 2013.11.27 0 0 23157

Hát akkor erre az listádra csinálj egy egyedi szűrést. Így mindegyik kombiból csak 1 db lesz. Vagy egy Adatok/Adateszközök/Ismétlődések eltávolítását. 

Előzmény: albino combino (23154)
Fferi50 Creative Commons License 2013.11.27 0 0 23156

Még egy kis kiegészítés:

 

Nagyon kevés az olyan művelet, amit csak select után lehet végrehajtani. Általában erre nincs szűkség, "üldözendő" jelenség a kódban. A makrórögzítő utáni kódból ezt kell legelőször kitakarítani. (Meg az olyanokat, mint scroll...)

 

Üdv.

Előzmény: Fferi50 (23155)
Fferi50 Creative Commons License 2013.11.27 0 0 23155

Szia!

 

Sejtettem, hogy valami ilyesmi lehet a dologban.

 

A select pont az a metódus, ami csak az aktív munkalapon/objektumon működik. Bár erre a help-ben nincs utalás, nagyjából logikus, hogy csak azt választhatod ki amit látsz. (A makró rögzítő ugye teleszórja select-tel meg activate-val a kódot, hogy megmutassa, mit is csináltunk, de ezt nem kell utánozni a vba kódjainkban.)

 

Ezért is írtam, hogy az értékadás működik akkor is, ha nem aktív munkalap egyik szereplője sem. A copy is működik így. Tehát azt kell végig gondolni, hogy melyik utasítás az, amelyhez feltétlenül kell az aktív munkalap. Erre vagy van a help-ben utasítás, vagy előbb-utóbb kiderül a gyakorlatban.

 

Üdv.

 

 

Előzmény: pimre (23153)
albino combino Creative Commons License 2013.11.27 0 0 23154

szuper, eddig működik 
már csak azt hogy csinálom meg, hogy úgy listázza ki külön, hogy eltüntesse a "duplikációk"?
tehát most az 500 soromból lett 700 és szépen ott vannak a tulajdonságok, van amelyikből van 100 is. 
Mert most ha beírom a darabtelit és végighúzom, akkor ugye ott van a 100 egymás alatti tulajdonság mellett, hogy x tulajdonságból van 100 darab

Előzmény: tbando (23151)
pimre Creative Commons License 2013.11.27 0 0 23153

Mi sem egyszerűbb: Egy teljeles üres munkafüzetben egy modulon a következőt elindítom:

 

Option Explicit
Sub Ellenőrzés()
Dim ws1 As Worksheet, ws2 As Worksheet
Application.DisplayAlerts = False ' figyelmeztetések kikapcsolása
Set ws1 = Workbooks("teszt.xls").Worksheets("Munka1")
Set ws2 = Workbooks("teszt.xls").Worksheets("Munka2")
ws1.Activate
ws2.Range("A1").Select
End Sub

 

És a ws2.Range("A1").Select soron hibát jelez. 

Előzmény: Fferi50 (23141)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!