- bitpork: Augusztus 2- szombat jelen állás szerint.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Fogkefe: elektromos vagy manuális?
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
-
LOGOUT
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz
Mindless #24998 üzenetére
Szia!
Az előző sor formuláit így írhatod át értékre:
.offset(-1,0).entirerow.value=.offset(-1,0).entirerow.value
Ha egy meghatározott tartomány értékét szeretnéd felülírni, akkor pedig
range(.offset(-1,-4),.offset(-1,5).value=range(.offset(-1,-4),.offset(-1,5).value
Az előző sor 10 celláját írja felül az értékével.
Megjegyzem, hogy ez a módszer csak összefüggő tartományon működik.Üdv.
-
Mindless
tag
Sziasztok!
Egy VBA problémával állok szemben amit nem tudok megoldani.
Jelenleg a következő kód aktív az excelben, ami ha a G oszlopban ha új adatot viszek fel a C oszlopba beírja az aktuális dátumot:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("G1:G5000"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, -4).ClearContents
Else
With .Offset(0, -4)
.NumberFormat = "yyyy.mm.dd"
.Value = Now
End With
End If
Application.EnableEvents = True
End If
End With
End SubEzt kellene kiegészítenem egy olyan kóddal ami ha a G oszlopban beírok egy új adatot akkor az előző sor formuláit felülírja az értékeikkel.
A segítségeteket előre is köszönöm!
-
JamesHolden
aktív tag
Sziasztok,
Létezik Office-ban (legyen az Word vagy Excel) olyan beállítás, hogy a tálca vagy bezár gombbal nem a tálcára teszi le az adott dokumentumot hanem az óra melletti területre? És onnan is lehessen 1 kattintással megnyitni?
Köszi
-
Sziasztok. Segítséget szeretnék kérni. Hogyan tudok összeegyeztetni cellákat ily módon?
munkalap1: dátum1 érték1 || munkalap2: dátum2 érték2
Tehát, hogy a dátum1 és a hozzá tartozó érték1 szerepel-e ugyan ezekkel az értékekkel a munkalap2-n?
U.I.: Kihagytam, hogy vmilyen kereséssel kéne, mert nem biztos(sőt biztos, hogy nem), hogy tartalmazza ugyan azokat a tételeket, és úgy van leszűrve.
-
Fferi50
Topikgazda
válasz
MrCsiT #24989 üzenetére
Szia!
Ezt a képletet próbáld meg légy szíves:
Pl. C1 cellába: =darabteli(B:B;"*"& A1 & "*")
Ez minden olyan cellát összeszámol a B oszlopban, ahol az A1 cellában levő szöveg bármely helyen előfordul.
Hátránya persze, hogy Anna esetében a Panna neveket is bele fogja számolni, így azok darabszámát ki kell vonni (ha van ilyen résznév az egészben eset).Üdv.
-
Delila_1
veterán
-
MrCsiT
addikt
Sziasztok!
Sima, mezei excel 2k10, amiben segítséget kérek szépen, elvileg alap, gyakorlatilag nem tudom, hogyan keressem meg, tehát:
Vannak az A oszlopban nevek, pl, Béla,Pista,Zoltán a B oszlopban máshonnan származó nevek, így formázva, aposztrófosan: 'Béla','Katalin','Pista','Zoltán'
Azt szeretném megtudni, hogy az A oszlopban szereplő nevek, pl a Pista, szerepelnek-e a B oszlopban ?
Valójában, a 2 oszlopban lévő nevek közötti eltérés kellene, mert a B oszlop 30 sorral hosszabb, de nem tudom, melyik 30 név tér el.Mi erre a megoldás?
-
-
sziasztok!
annak mi a fene lehet az oka, ha megadom egy fájl elérési útvonalát egy string változóban, majd egy egyszerű
Workbooks.Open (stringvaltozo)
parancsot használok, és folyamatosan 1004-es hibát dob ki. ha a debug gombra kattintok majd pedig ismét futtatom a kódot ettől a sortól, akkor pedig szépen lefut az egész makró. teljesen tanácstalan vagyok. bármi ötlet? köszi!
-
Fferi50
Topikgazda
válasz
KaliJoe #24982 üzenetére
Szia!
Nagyjából úgy kell kezelned, mint az application.enableevents kapcsolót. Hiszen azt is ki-be kapcsolgatod.
A userformban definiálsz az első sorok előtt pl. egy changetextbox_name boolean változót.
A textbox_name_change eseményben pedig először azt nézed meg, hogy ez true. Ha igen, mehet tovább, ha nem, akkor kilép.
Amikor olyan utasítást adsz ki, amelyik megváltoztatja a textbox értékét, akkor eldöntöd, hogy fusson-e le a chage esemény és az utasítás előtt megváltoztatod a changetextbox_name értékét ennek megfelelően.
De ugyanez igaz akkor is, ha magában az eseménykezelésben változtatod a textbox értékét, mert az képes rekurzívan meghívni magát... Tehát a változtatás előtt change... false. Ezáltal nem fog tovább menni.
Az eljárás végén pedig chage...true és akkor a következő változtatásnál belemegy az eljárásba.Remélem érthető.
Üdv.
-
KaliJoe
tag
válasz
Fferi50 #24981 üzenetére
Szia Fferi50,
Office 2010.
A bajom a Change vezérlés ki-be kapcsolásával, az az, hogy odáig értem, h legyen egy változó, ami "vezérli", hogy működhet-e a Change rész... (bár ez sem teljesen világos előttem), hogy hogyan?... de a problémám az elméletben ott van, hogyha egyszer kikapcsoltam, mi fogja visszakapcsolni, engedélyezni, h a Change rész lefusson, lefuthasson?
-
Fferi50
Topikgazda
válasz
KaliJoe #24980 üzenetére
Szia!
Milyen excel verziód van?
Igen, sajnos a KeyAscii nem azonos a KeyCode - értékével - ezt valahol írtam is az előbb.Ez alapján viszont:
"
KeyPress EventOccurs when the user presses an ANSI key.
Syntax
Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)
The KeyPress event syntax has these parts:
Part Description
object Required. A valid object.
KeyANSI Required. An integer value that represents a standard numeric ANSI key code.Remarks
The KeyPress event occurs when the user presses a key that produces a typeable character (an ANSI key) on a running form while the form or a control on it has the focus. The event can occur either before or after the key is released. This event also occurs if you send an ANSI keystroke to a form or control using either the SendKeys action in a macro or the SendKeys Statement in Visual Basic.
A KeyPress event can occur when any of the following keys are pressed:
Any printable keyboard character.
CTRL combined with a character from the standard alphabet.
CTRL combined with any special character.
BACKSPACE.
ESC.A KeyPress event does not occur under the following conditions:
Pressing TAB.
Pressing ENTER.
Pressing an arrow key.
When a keystroke causes the focus to move from one control to another.Note
BACKSPACE is part of the ANSI character set, but DELETE is not. Deleting a character in a control using BACKSPACE causes a KeyPress event; deleting a character using DELETE doesn't.When a user holds down a key that produces an ANSI keycode, the KeyDown and KeyPress events alternate repeatedly. When the user releases the key, the KeyUp event occurs. The form or control with the focus receives all keystrokes. A form can have the focus only if it has no controls, or if all its visible controls are disabled.
The default action for the KeyPress event is to process the event code that corresponds to the key that was pressed. KeyANSI indicates the ANSI character that corresponds to the pressed key or key combination. The KeyPress event interprets the uppercase and lowercase of each character as separate key codes and, therefore, as two separate characters.
To respond to the physical state of the keyboard, or to handle keystrokes not recognized by the KeyPress event, such as function keys, navigation keys, and any combinations of these with keyboard modifiers (ALT, SHIFT, or CTRL), use the KeyDown and KeyUp event procedures.
"
Lehetséges, hogy mégis a KeyPress eseményhez kell menekülnöd, ezt tudja a backspace-t érzékelni.
A Backspace ansi kódja is 8.Próbáld ezt az eseményt úgy, ahogyan az előbb a másikra írtam.
Üdv.
Ps:A change esemény kezelésbe most nem mennék bele, mert nincs annyi időm jelenleg. De ígérem, ha egy kicsit szabadulok - visszatérek még rá.
-
KaliJoe
tag
válasz
Fferi50 #24979 üzenetére
Szia Fferri50,
Néztem. Át is írtam a kódomat a KeyDown-ra... aztán a tesztelésnél jött ki, h nem jelzi a Backspace-t. Mivel ott voltak a konstansok, azt hittem sínen vagyok...
Igaz nekem nem
"Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)" -dal hívta meg az eseményt, hanem
"Private Sub object_KeyDown( ByVal KeyAscii As MSForms.ReturnInteger)" vagy
"Private Sub object_KeyDown( ByVal KeyANSI As MSForms.ReturnInteger)" formában. Ez lehetett baj?Azért, ha tudod, a Change esemény figyelés megoldását leírnád érthetőbben? Kérlek... :-)
-
Fferi50
Topikgazda
válasz
KaliJoe #24978 üzenetére
Szia!
A userformon nem hatásos az application.enableevent=false.
Ott csak trükkösen lehet megkerülni az eseménylefutást. Egy form szintű változót kinevezel eseményvezérlőnek, ha ez true, akkor fusson le az esemény, ha false akkor ne fusson le. Minde eseménykezelésnél ennek a változónak a vizsgálatával kezded a projektet.DE: Javaslom még mindig, hogy Textbox_KeyDown eseményt nézd meg, itt a keycode megmondja, hogy melyik billentyűt nyomták le.
A backspace keycodja a vbKeyBack vba konstans,ami numerikusan 8.A billentyűk Keycode megfeleltetését a help Keycode Constants cimszava alatt találod.
Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
if KeyCode=vbKeyBack then
ide írod amit szeretnél csinálni ha BackSpace-t nyomtak.
endif
KeyCode=0
end subAz utolsó sor, a KeyCode=0 a lényeg, ezzel eliminálod a billentyű leütést! Minden olyan esetben kell, ha nem akarod, hogy a leütött billentyű hatása érvényesüljön!
(Pl. te beírod a textboxba a leütött betűt, vagy lecsökkented a hosszát, akkor már nem szabad, hogy a rendszer is megcsinálja ugyanazt!)
Ha meg kell, hogy csinálja a rendszer, akkor ezt a sort elhagyod.Hidd el, ez a legegyszerűbb megoldás a billentyűzet figyelésre. A change az macerás. Rengeteg hasznos info van a Help-ben. (A szokásostól eltérően.)
Üdv.
-
KaliJoe
tag
válasz
Fferi50 #24973 üzenetére
Szia Fferi50, és Szia Mindenki,
Végül visszatértem a Change eseményre, mert a karakter most sem volt kiolvasható rendesen... noha még konstansok is vannak...
A problémát megoldottam - nagyjából - még egy változó segítségével, amely azt figyeli, h éppen rövidül-e (backspace, delete) vagy növekszik a TextBox.Value sztring hossza.
Viszont keletkezett egy új gondom... Change esemény akkor is bekövetkezik, ha éppen inicializálom a szövegdobozt és / vagy valamit - a felhasználó beavatkozásán kívül - magam írok hozzá a karakterlánchoz (pl. telefonszámban a tagolást, (, ), jeleket és szóközt) ... így gyakorta többször is meghívja önmagát a Change, nem várt eredményeket hozva.Próbáltam kikapcsolni az eseményfigyelést a
Application.EnableEvents = False és
... esemény programkódja ...
Application.EnableEvents = True
utasításpárossal, de mintha rá se hederítene... Mit kell még átállítani, hogy ne következzen be esemény, vagy hogy lehet megkerülni? -
Krisztensen
újonc
válasz
slashing #24976 üzenetére
Ez egy betegség kutatásának statisztikai igazolása. Lényegében volt 40-en betegem (férfiak és nők) akiknek különbözők adatait jegyzeteltem. Most az lenne a feladatom, hogy a saját eredményeimet ún. irodalmi eredményekkel összehasonlítsam (erre a 2 mintás t-próbát használnám) és megadjam, hogy az én kutatásom reprezentatív-e (mmint hogy mutat hasonlóságot az irodalmi adatokkal. ) Ez nekem egy kicsit magas labda
pl.: A normalítás milyen értéktől lehet szignifikánsnak tekinteni? -
slashing
senior tag
válasz
Krisztensen #24975 üzenetére
Szerintem kifelejtettél valami fontos információt, mert ez alapján csak ilyen választ kaphatsz hogy az átlaggal....
milyen adataid vannak és azok hogyan vannak csoportosítva? van ömlesztve külön férfi női életkorok vagy gyakoriság szerint vel van sorolva hogy 18 évesből van 10db 34-ből meg 7??
-
Krisztensen
újonc
Sziasztok, elég nagy gondban vagyok. Egy betegségről írok és elakadtam pár dologban.
Hogyan számolom ki a férfiak ill. nők átlag életkorát külön-külön? -
-
KaliJoe
tag
válasz
Fferi50 #24969 üzenetére
Szia Fferi50,
Megpróbáltam azért... már majdnem nagyon örültem, h ez mégiscsak megoldás lesz, mert valóban ez megmondta a billentyűnyomást... egy Integer formában vissza is adta...
... kivéve éppen a keresett Backspace-t
, meg társait, mert ezekket megnyomva a TextBox végrehajtja a műveletet, de a TextBox_Neve_KeyPress (ByVal KeyANSI As MSForms.ReturnInteger) nem hívódik meg...
Namármost, ha tudtok olyan beállítást, amely ezekben az esetekben is meghívja a eseményvezérelt rutint, akkor helyben vagyok!
-
KaliJoe
tag
válasz
Fferi50 #24969 üzenetére
Szia Fferi50,
Sajnos, ez sem az amit kerestem... Mert nekem egy TextBox_Neve_Change eseményen belül kellene megmondanom, h mi volt a karakter...
Az a módszer sem jó, h leválasztom az utolsó karakterét, mert pl. egy Backspace rögtön el is vesz egy karaktert a TextBox_Neve.Value tartalmából...
Szóval, azt kellene megmondanom, h pl. a Backspace-e az utolsó billentűnyomás, kb. még az előtt, h kivonná a TextBox_Neve.Value értékéből az utolsó karaktert. -
KaliJoe
tag
válasz
slashing #24968 üzenetére
Szia slashing,
Sajnos, ez nem jó... ennek pont az ellentéte kell. Amit ott leírtak, az arra jó, ha én (vagy a felhasználó) akar elküldeni egy billentyűnyomást, vagy billentyűkombinációt az éppen futó Makró számára.
Nekem az kell, hogy a felhasználó éppen mit nyomott meg utoljára... Ebben nagyon sokat segít a Like (mert ki lehet vele szűrni rengeteg nem kellő bevitelt... de nem tudom, hogy kezeli-e a speciális / vezérlőkaraktereket. Ha erre tudsz valami linket...
-
KaliJoe
tag
Sziasztok,
Tud valaki megoldást arra, hogy egy űrlap textboxának kitöltése közben meg tudjuk határozni, h éppen mi volt az utolsó felhasználói billentyűnyomás?
A Like operandussal sokat ki tudok szűrni, de nekem vezérlőkaraktereket kellene megfigyelnem, úgy mint Backspace, Delete, kurzormozgató nyilak... Ötlet? Módszer?
-
biker
nagyúr
Nos, az eredetivel az volt a gond, sok cikk nem létezik angolul, csak olaszul
Erre átküldik excelben pdf helyett, annyival jobb, hogy külön sorban van az angol, tehát itt is lehet képletezni, ha az angol sor előtt van egy olasz, akkor angol, ha nincs, akkor olasz
Szuperek ezek az exportok. De ezt már legalább könnyű megoldani -
Zso68
újonc
Sziasztok!
Egy cellában lévő érték (sok érték és sok cella), illetve a cella háttérszíne egy másik celábba kerülő értéktől függően változik meg feltételes formázásba írt függvény segítségével. Működik is rendesen, de csak akkor "látszik" a színezés eredménye, ha le, majd felgörgetem a képernyőképet. Magyarán nem frissül a monitor képe.
A következő a kérdésem: hogy tudnám elérni, hogy görgetés nélkül is azonnal láthatóvá váljon a színek változása, ahogy kilépek a "parancsot tartalmazó" cellából? (Ha jól emlékszem, korábbi verzióban működött. Most Office2010)
Remélem, érthető voltam! (Én minden esetre értettem.
)
Köszi!
-
Digestive
veterán
Sziasztok!
Barátnőm elakadt a munkában. Hátha tudtok segíteni!
Egy árlista táblázatban cikkszámok nullával kezdődnek. Ezt be tudjuk írni szövegként. CSV formátumban kell elmenteni, mert a Next (váll.irányítási rendszer) ezt tudja betölteni. Miután elmenti, kilép, majd megint megnyitja eltűnnek a nullák!
Mi lehet a baj? Köszi!
-
KaliJoe
tag
Sziasztok,
Van arra valakinek valami ötlete, hogy hogyan lehetne egy képlet - tehát nem makró! - részeként leellenőrizni, h egy bizonyos nevű munkalap létezik-e a Munkafüzetben?
-
KaliJoe
tag
Szia kymco,
Ha a verbális erőszakot nem akarod, akkor próbálkozhatsz a fizikaival is. Lehet gyorsabb megoldás!
Képletben:
...
For Each str_Dolgozó as wsh_DolgozókNeve
If "verbális erőszak"<>"Eredmény" then
Do
Üt=Üt+1
Loop "verbális erőszak"<> "Eredmény"
End if
Next str_Dolgozó
... -
tgumis
tag
Sziasztok
Makrórögzítővel rögzítettem egy makrót. Semmi bonyolút csak annyi hogy törölje a
D1
D36
D1217
D20 cellák tartlmát.
Erre az történik, hogy az aktív cella értéke az első ami töröl és onnan továbbhaladva.
Pl ha az A1 en állok akkor A3:A6 A12:A17 A20
Ez miért van? -
Fferi50
Topikgazda
Szia!
Ezt nevezik szívásnak....
Ha hálózaton dolgoztok, akkor megoldás lehet, hogy felteszed egy központi helyre a fájlt, ott megadod az excelnek a szükséges beállításokat. Ezek után pedig csak az itteni excelt elindítva lehessen használni.Mivel nem indulhat el a makró, így nem tudod kikényszeríteni sem a bezárást, sem a makró indulást.
Még egy olyan ötletem van, hogy egy adott cellába beírsz egy képletet, ami egy másik cella állapotát figyeli és attól függően feltételes formázással figyelmezteted a felhasználót, hogy ez így nem lesz jó.Pld.
A1 cella képlete =ha(A2<>1;"Nincsenek bekapcsolva a makrók, hibás adatokat fogsz elmenteni, kérlek, lépj ki mentés nélkül!";"Minden OK")
A1 cella feltételes formázása képlettel, =$A$2=0, kitöltés vörös
A2 cellába pedig a Workbook_Open eseményben legelső dolgod, hogy beleírod az 1-et, a Workbook_BeforeClose eseményben pedig átírod 0 értékre.Persze ez nyilván nem garantálja, hogy bárki is ennek megfelelően cselekszik. Arra egyelőre nincs tippem, hogyan nézhető meg, hogy valaki "makróhasználat nélkül" írta felül a fájlt.
Üdv.
-
Fferi50
Topikgazda
válasz
pirit28 #24897 üzenetére
Szia!
Bocs a hosszú hallgatás miatt! Remélem, még aktuális. Próbáld meg ezt:
Sub okesit()
Do
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = CurDir()
If .Show Then
okesito .SelectedItems(1), True
Else
If MsgBox("Nem választottál, befejezed?", vbYesNo, "Könyvtár választás") = vbYes Then Exit Sub
End If
End With
Loop
End Sub
Sub okesito(ByVal konyvtar As String, ByVal alkonyvtaris As Boolean)
Dim fs, fldr, subfldr, fld, fajl As String
Set fs = CreateObject("Scripting.FilesystemObject")
Set fldr = fs.GetFolder(konyvtar)
fajl = Dir(fldr & "\*.xls*")
Do While fajl <> ""
Workbooks.OpenText Filename:=fldr & "\" & fajl
ActiveWorkbook.SaveAs Filename:=Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
'MsgBox fajl
fajl = Dir()
Loop
If alkonyvtaris Then
Set subfldr = fldr.subfolders
For Each fld In subfldr
fajl = Dir(fld & "\*.xls*")
Do While fajl <> ""
Workbooks.OpenText Filename:=fld & "\" & fajl
ActiveWorkbook.SaveAs Filename:=Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
'MsgBox fajl
fajl = Dir()
Loop
Next
End If
End SubAz okesit makrót kell elindítani, ott ki tudod választani azt a könyvtárat, amelyben (és alkönyvtáraiban) végre szeretnéd hajtani a műveletet.
Ha a kiválasztott könyvtárban elvégzi a műveletet, akkor visszatér a választó ablak.
A makróból úgy léphetsz ki, hogy a mégse gombot választod, vagy esc-t nyomsz és a kérdésre igent válaszolsz.
Az előrehaladásra nem tettem bele információ kijelzést, a státuszsoron esetleg kiírathatod pl. a kikommentelt msgbox helyére, Application.StatusBar = fajl
akkor a végére pedig Application.StatusBar=FalseÜdv.
-
kymco
veterán
Sziasztok!
Egy bizonyos excel táblázatban muszáj használnom vba-t. De bizonyos felhasználók a saját gépükön (nem tudom a gépen futó excel beállításait módosítani) vagy figyelmetlenségből vagy szándékosan nem engedélyezik a makrók futtatását a megnyitáskor. Így nem fut le a kód, hibás adatok kerülnek be egyes cellákba.
Hogyan tudnám kikényszeríteni az engedélyezést? (Persze most itt nem verbális erőszakra gondolok)
Segítségeteket előre is köszönöm! -
diegho
nagyúr
Sziasztok!
2010-es Excel-ben kellene egy kis help. Szeretnék egy táblázatot csinálni, amiben az egyik oszlopban dátumok lesznek és szeretném, ha a rendszer dátumához viszonyítva jelezne az excel, ha az ott lévő dátum három napon belülre került. Gyakorlatilag adott x feladat, amit y időpontra kell megcsinálni, erről szólna a táblázat, szeretném, ha az y-3. napon jelezne az excel, hogy figyeljek oda, csak 3 nap van vissza. Megoldható ez?
-
Delila_1
veterán
válasz
alfa20 #24938 üzenetére
Nagyon klassz! Most már csak azt nem értem, ha az ikonját kitetted a gyorselérési eszköztárra, miért nem magát a kalkulátort tetted ki?
Ujjgyakorlat a makrózáshoz?
Akkor egy kis formázási módosítás:
A Display label SpecialEffect tulajdonságánál a 2-es jobban mutat.
A Label2 lehet nagyobb, de a Visible tulajdonsága legyen False
A Label1 BackStyle legyen 0, átlátszó, hogy a Display labelt ne takarja.Persze ízlések és pofonok...
-
Delila_1
veterán
Egyenként kell megadnod a feltételes formázást a különféle nagyságrendekhez, de ezt elég 1× bevinned a tartományra.
100-as nagyságrendnél nagyobbhoz a feltétel =A2>999, a forma ##0 " ezer" (a 0 után 1 db szóköz)
100 000-esnél nagyobbhoz =A2>999999, a forma ### ##0 " millió" (a 0 után 2 db szóköz)Figyeld meg, hogy a számfora utolsó tagja, a 0 után annyi szóköz van, ahányszor 1-1 hármas egység szerepel az eredeti értékben. Az idézőjelen belülre is tettem egy kezdő szóközt, az csak annyit csinál, hogy
123ezer helyett 123 ezer lesz a kiírás képe, nem írja rá a számra a nagyságrendet. -
alfa20
senior tag
Sziasztok!
No még is sikerült a kalkulátor
két képből vágtam össze, hogy látszodjon a gomb amivel meghívom
privát makróból fút így bármikor előcsalható
ha esetleg valakit érdekel itt meglesheti [link]
-
Delila_1
veterán
A =KÖZÉP(A1;SZÖVEG.KERES(" ";A1)+1;80) nem makró, hanem egy képlet. Egy üres oszlopba írd be az első (dupla) szavad sorába, majd másold le addig, amíg adataid vannak.
Vagy egyszerre beírhatod a képletet a D oszlopba, D2-től addig, ameddig adatok vannak az A oszlopban.
Ez a makró modulban legyen. A Munka1 helyett írd a saját lapod nevét.Sub angol()
Dim usor As Long
usor = Application.WorksheetFunction.CountA(Sheets("Munka1").Range("A:A"))
Range("D2:D" & usor) = "=MID(A2,SEARCH("" "",A2)+1,256)"
End Sub -
Delila_1
veterán
A laphoz kell rendelned a makrót. Feltételeztem, hogy az első oszlopban vannak a szavak. Ha nem, akkor az
If Target.Column = 1 And Not IsEmpty(Target) Then
sorban az 1-et írd át a formázandó oszlop sorszámára.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kezd As Integer
If Target.Column = 1 And Not IsEmpty(Target) Then
kezd = InStr(Target, " ") + 1
Range(Target.Address).Characters(Start:=kezd, Length:=Len(Target)).Font.FontStyle = "Italic"
End If
End SubEz a makró az újonnan bevitt magyar-angol szöveg második részét alakítja dőlt betűssé.
Az angol szavakat a =KÖZÉP(A1;SZÖVEG.KERES(" ";A1)+1;80) képlettel kapod meg egy üres oszlopban. -
marcyman
aktív tag
No ma próbáltam amit írtál, de bevallom a 3. pontnál tovább nem jutottam.
Konkrétan azt sem vágom hova kéne írnom a többit.
Illetve azt sem tudom, hogy milyen tutorialt kéne néznem hozzá, hogy nagyjából megértsem mit is csinálok.
Nagyon megköszönném, ha linkelnél valami gyorstalpalót. -
biker
nagyúr
Igen izgalmas kérdésem van
adott egy tábla. van benne 10.000 sor
a szöveges cella egyben tartalmazza az olasz és az angol terméknevet
Az olasz szöveg álló, az angol dőlt betűs.
Nekem csak az angol kellhogyan lehet kinyerni, csak a dőlt betűs angol szövegrészt?
-
Pá
addikt
Ezen felbátorodva kérdezek mégegyet.
Amolyan dinamikusan változó számformátumot szeretnék.
Tehát pl A1 cellában '455' van.
Ha ezt megszorzom 1000-rel, jó lenne, ha 455000 helyett ezt írná: 455ezer. Ha megint megszorzom 1000-rel, akkor pedig ezt: 455millió. Ha megint, akkor 455milliárd. stbstb Nyilván a cella értéke ennek megfelelő lenne, szóval normálisan szeretnék vele tovább számolni, csak grafikusan tenném könnyebben olvashatóbbá a munkalapot.Tudom, hogy létezik az X szorozva 10 az Y-on formátum, de az nekem nem annyira szimpatikus.
A nagyságrendekre pedig készítenék egy táblázatot, onnan puskázhatna az excel, hogy hova mit kell írnia, ha megoldható.Szóval lenne egy ilyen táblázatom mankónak, hogy
ezer 1000
millió 1000000
milliárd 1000000000
billiárd 1000000000000stb
-
Delila_1
veterán
Egyszerűen kitöltheted az üres helyeket.
Kijelölöd a B6:D14 területet. Ctrl+g-re bejön az ugrás menü, ahol az irányítottat, majd az üres cellákat választod. Marad a kijelölés, az aktuális cellába beírsz egy egyenlőség jelet, majd FEL nyilat nyomsz, Ctrl+Enter.Ezután már csak a képletet kell beírni a B3-ba: =FKERES(B2;$A$6:$D$14;OSZLOP();1), és ezt jobbra másolni.
-
Pá
addikt
Sziasztok!
Egy táblázatból szeretnék értékeket kinyerni, vlookup szerűen, csak kicsit szofisztikáltab módon.
Inkább mutatok egy példát, talán úgy egyszerűbb elmagyarázni.
A fenti táblázatban a kék az input cella, a sárgába várom az eredményt. Most helyesen van kitöltve, szóval ezekre az eredményekre számítanék.
Ha B2 cellába írok egy értéket, akkor azt összevetné az A6;A14 számsorral és aminél még nagyobb, vagy egyenlő, azt a számot venné ki a B oszlopból.
Szóval most B2-ben 265-van, így a 200-hoz tartozó 4-et veszi fel értékként.
C2-ben 225 van, így ott is a 200-hoz tartozó 8-at veszi fel értékként.
D2-ben 299-van, így ott viszont még a 250-hez tartozó 16-ot kéne felvegye.Kicsit bonyolítja a helyzetet, hogy néhány cella üres. Tehát pl az első példát nézzük, akkor az A oszlop hivatalosan 0-t kéne felvegyen, hiszen 265 nagyobb, mint 250 és a 250-nél nem szerepel semmi.
Itt maximum azt tudnám csinálni, hogy az üres helyekre a táblázatban kézzel beírom a megelőző értéket. De jó lenne egy elegáns megoldás erre is, hogy ezt a excel le tudja kezelni. -
Mutt
senior tag
válasz
marcyman #24909 üzenetére
Szia!
Adott egy táblázat ahova az ADOTT napi adatoknak át kellene frissülniük egy másik táblázatból, ahol minden nap új sorba írom az adatokat.
Makróval támogatva megy.
Lépések:
1. A minden nap bővülő táblázatba kell egy függvény egy fix helyen amely megadja az utolsó sort.
pl. legyen a B1 cella
2. Az utolsó sor számát meg lehet tudni DARAB vagy DARAB2, esetleg a HOL.VAN függvénnyel.
pl. legyen a B1 képlete =DARAB2(A:A)
3. Ezt a cellát linkeldbe a másik fájlba.
4. A másik fájl egyik eseményére (ez lehet a fájl megnyitása, vagy az egyik lap módosítása) be lehet tenni az alábbi egy sort (a példában A1-ben van a linkelt mező és alá A2-be írjuk az utolsó sor hivatkozását):
Range("A2").Formula = "=[másik fájl neve,xlsx]Munka1!$A" & Range("A1")
5. Csak ezt a fájl kell makróbarát füzetként menteni, a másikat nem kell.A 4-es lépésben említett sor helyett, itt egy kicsituniverzálisabb megoldás. Ez 3-as lépésben linkelt mezőből kiveszi a másik fájl elérését, így azzal már nem kell foglalkoznod,
Private Sub Worksheet_Activate()
Dim link As Variant
Const oszlop As String = "A" 'A-oszlopban vannak a napi adatok a másikban
link = Split(Range("A1").Formula, "!")
Range("A2").Formula = link(0) & "!" & oszlop & Range("A1").Value
End Subüdv
-
Delila_1
veterán
válasz
alfa20 #24917 üzenetére
Label-ben nem tudsz értékeket megadni, erre a Textbox való. Mivel a textboxok szöveges értéket adnak (a nevükben is ez szerepel), meg kell szoroznod azokat 1-gyel, hogy számolni lehessen velük.
A képen a lévő ComboBox RowSource tulajdonságába ezt írtam: Munka1!A1:A2, mert ebbe a két cellába írtam a + és - jelet, előttük aposztróffal.
-
alfa20
senior tag
Sziasztok,
Abban tudnátok segíteni, hogy UseForm1-ben Label1 és Label2-ben szerepel egy-egy szám, valamint Label3-ban vagy "+" vagy "-". Label4-ben kellene az értéket mutatnia
valahogy így:
Label4 = sum(Label1 & Label3 & Label2)
-
#02644736
törölt tag
Tudna valaki abban segíteni, hogy ha egy cella értékét másolom át egy másik munkalapra, nem marad meg ugyanúgy, pl. ha a cellában ez van C_121_14 (a második egyesnek alsó indexben kellene lennie, de nem tudom úgy itt beírni), hogy azt úgy másolja át egy másik cellában, hogy az az egyes alsó indexben maradjon, mert másolás után úgy néz ki, mint ahogy itt leírtam (nem lesz alsó indexben)
-
Fferi50
Topikgazda
Szia!
Az alábbi kis makrórészletet légy szíves betenni a dim sor után:
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = CurDir()
If .Show Then
ChDir (.SelectedItems(1))
Else
MsgBox "Nem választottál, kilépek a programból!", vbCritical :Exit Sub
End If
End WithÍgy amikor elindítod a programot, kiválaszthatod, hogy melyik könyvtár adatait rakja össze (ez talán jobb is, mintha kívülről navigálnál, mert ez biztosan oda visz, ahova szeretnéd).
Ha nem válaszottál könyvtárat, akkor nem megy tovább.Üdv.
-
marcyman
aktív tag
Sziasztok!
Kérdésem, hogy a következőt meg lehet-e oldani valahogy:
Adott egy táblázat ahova az ADOTT napi adatoknak át kellene frissülniük egy másik táblázatból, ahol minden nap új sorba írom az adatokat.
Tehát van egy napi jelentés, ahova átfrissülne egy másik táblázatból az adott napi adatok, automatán. Valahogy léptetné az adott sort (napot) mindig tovább.
-
air
nagyúr
Sajnos csak a próba sikerült, élesben nem megy a dolog.
Nem tudom, hogy az előbb miért annak a könyvtárnak a tartalmát kezdte összemásolni amelyiket valóban kellett, mert most az istennek sem tudom rávenni, hogy azt csinálja, amit én akarok, ne pedig a teljes "Dokumentumok" mappámat.
Tehát továbbra sem tiszta, hogy miként kell elnavigálni a kérdéses mappába. -
alfa20
senior tag
-
Fferi50
Topikgazda
Szia!
Elnavigálsz abba a könyvtárba, ahol a fájljaid vannak.
Elindítod az excelt, ami egy új munkafüzettel indít.
Ide összemásolhatod a fájlokat.
Ezután Alt+F11 lenyomásával átmész a VBA project ablakba.
A menüből kiválasztod az insert, azon belül pedig a module pontot.
A megnyilt modullapra bemásolod az alábbi kódot:
Sub osszerako()
Dim hova As Worksheet, fajlneve As String, usor As Long, xx As Integer
Set hova = ActiveSheet
fajlneve = Dir("*.xls*")
Application.EnableEvents = False
Applicaton.ScreenUpdating=False
Do While fajlneve <> ""
xx = xx + 1
usor = hova.UsedRange.Rows.Count + 1: If usor = 2 Then usor = 1
Workbooks.Open Filename:=fajlneve, ReadOnly:=True
ActiveSheet.UsedRange.Copy Destination:=hova.Cells(usor, 1)
ActiveWorkbook.Close False
fajlneve = Dir()
If xx Mod 10 = 0 Then Application.StatusBar = "Másolva: " & xx & "db fájl!"
Loop
Application.EnableEvents = True
Application.ScreenUpdating=True
Application.StatusBar = False
MsgBox "A másolásnak vége, kérem, mentse el a fájlt!", vbInformation, "Fájlok összemásolása"
End SubVisszamész az excel munkalapra (Alt+F11 ismét).
Ezután menü - nézet- makrók megjelenítése. Megjelenik a listában az osszerako. Inditás.
Alul a státusz soron fogod látni a begyűjtött fájlok számát, tizesével nőve.Ha végzett, kapsz egy üzenetet.
Ezután mentés másként művelettel nevezd el a fájlodat, a mentés után bezárhatod.Remélem, sikerülni fog.
Üdv.
Új hozzászólás Aktív témák
Hirdetés
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- Azonnali készpénzes Sony Playstation 5 lemezes és digitális felvásárlás személyesen/csomagküldéssel
- AKCIÓ! GIGABYTE AORUS MASTER RX 6800 XT 16GB videokártya garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 13400F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Asus Rog Strix RTX 3070Ti 8GB GDDR6X Videokártya!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged