-
Fototrend
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
-
Gh0sT
addikt
Jogos, a lottóba nem gondoltam bele, oda VKERES kell:
=HA(HIBÁS(VKERES(B2;$B$8003:$F$8003;1;HAMIS))=IGAZ;0;1)
Itt is lehet szummázni a Totóhoz hasonlóan és a DARABTELI-vel kell kiválogatni a találatokat.
A keresésre inkább valami autószűrő kellene a szummázott oszlopokra. Már ha lehet ilyent csinálni. Az elég egyszerű.Soha nem késő, hogy azzá válj, aki lehettél volna.
-
Delila_1
Topikgazda
Az alábbi makró elvégzi helyetted a munkát.
Sub nev()
Dim nev
sor = 1
Do While Cells(sor, 2) <> ""
nev = Cells(sor, 2).Value
Cells(sor, 1).Select
ActiveWorkbook.Names.Add Name:=nev, RefersToR1C1:="=Munka1!R" & sor & "C1"
sor = sor + 1
Loop
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Nem írtam, hogy ez a Munka1 nevű lapon működik. Ha másképp hívják a lapodat, javítsd ki a makróban. Ezután működnie kell. A makró bevitelével van esetleg gondod?
Remélem, jól értettem a feladatot. Ha csak azt akarod, hogy az A oszlop celláiban ugyanaz szerepeljen, mint a B-ben, akkor simán át kell másolnod az oszlopot, de Te úgy írtad, hogy az A celláinak a B oszlop azonos sorú cellájának nevét akarod adni.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Lehet, hogy a táblát nem $ jelekkel adtad meg. Ha a tábla pl. $A$1:$E$100, a képletet lehúzva is az marad. $ jelek nélkül viszont a második cellában már A2:E101, a harmadikban A3:E102, és így tovább.
Még az is lehet a hiba oka, hogy utolsó paraméterként nem megfelelő értéket adtál. Nézd meg a súgót ezügyben.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
A Hamis paramétert akkor alkalmazzuk, mikor nincsenek feltétlenül sorrendben az adatok, és pontos értéket akarunk kapni.
Azért írtam, hogy nézd meg a súgót, mert ott különböző, közelítő értékek keresésére találsz példát.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
VladimirR
nagyúr
leteznek ra programok, viszont azok - amennyire tudom - mind brute force modszerrel probaljak megtorni az allomanyt, ami meglehetosen lassu
ilyeneket millioszam talalhatsz google segitsegevel, de tapasztalatom sajnos nincs, hogy melyik milyen eredmennyel/sebesseggel dolgozik, igy ajanlani kozuluk nem tudok
a masik gond e programokkal, hogy tobbnyire fizetosek, s a probaverzio csak pl 3 karakter hosszu jelszavakat tud kitalalnimasik lehetoseg lehet, hogy mondjuk exportalod a doksit valami mas formatumba, s aztan visszakonvertalok xsl-be, bar nem tudom, milyen dokumentumrol van szo, s hogy ez eyaltalan megoldhato-e
-
Delila_1
Topikgazda
Vegyük úgy, hogy a lapjaid neve Csoport_1, Csoport_2, és Csoport_3, a cikkszámok az A oszlopban vannak, az árak pedig B-ben.
A kereső lapon az A-ban a cikkszám, a következő háromban az ár, amit az Fkeres függvény ír be.
A B oszlop képlete:=HA(HIBÁS(FKERES($A2;Csoport_1!$A:$B;2;HAMIS));"";FKERES($A2;Csoport_1!$A:$B;2;HAMIS))
Ezt a képletet jobbra húzod a D oszlopig, és a Csoport_1-et átírod Csoport_2-re, illetve Csoport_3-ra. Ezután a 3 képletet együtt lemásolod, ameddig szükséges.
Lehetne úgy is, hogy a 3 képletet valahova messzebb teszed, mondjuk H-tól J-ig, B-be pedig =max(H2:J2)
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Delila_1
Topikgazda
Szívesen, megyek a vajas kifliért.
Látszólag egyformán van írva a két KK H-d, de a második után van egy szóköz. Tüntesd el, és jól fog működni a makró.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
Hali!
Remélem jól értelmezem a kérdésed, ha igen akkor pl így
Munkafüzet1 - Munka1 (Code)
Private Sub DTPicker1_Change()
Range("C10:C20").Value = DTPicker1.Value
Selection = DTPicker1.Value
End SubDTPicker1 - MS Date and Time objektum
DTPicker1_Change() - akkor hajtódik végre amikor kiválasztasz egy dátumot
Range("C10":"C20").Value = DTPicker1.Value - egy tartományt tölt fel a kiválasztott dátummal(azért tettem idézőjelek közé a kettőspontot, mert különben egy tapsikoló smiley lenne ott)
Selection = DTPicker1.Value - az épp kiválasztott a cellát vagy cellákat tölti fel a kiválasztott dátummalRemélem erre gondoltál
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
Beszúrás/Hiperhivatkozás.
A "Hivatkozott cím"-nél a "Létező fájl vagy weblap" legyen érvényes. A Fájl... gomb segítségével kikeresed a képedet - figyeld a kiterjesztést -, aminek az elérési útja és a neve bekerül a "Megjelenő szöveg"- és az "Írja be a fájl vagy weblap nevét:" rovatba.
Az előbbiben átírhatod egy rövidebb, jellemző névre.Formázhatod is a szöveget, de nem úgy, hogy a cellára kattintasz, mert akkor behívja a képet (ez volt a cél), hanem a kurzor billentyűkkel lépsz oda.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
Hali!
Nos, a kért megoldáson kívűl még egy más módszert is beleraktam, érdekességként. A képet azért mellékeltem, nehogy más objektumot használj, hanem sima Image-t.
Munkafüzet1 - Munka1(Code)
Private Sub CommandButton1_Click()
JPGFile = Application.GetOpenFilename("JPG files,*.jpg", , "Select picture...", , False)
If JPGFile <> False Then
Range("B2") = JPGFile
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Picture = LoadPicture(JPGFile)
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo errorhandling
If (Target.Cells.Count = 1) And Target <> "" Then
Range("B2") = Target
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Picture = LoadPicture(Target)
End If
Exit Sub
errorhandling: MsgBox ("Multi Cells Selection found or FileOpen ERROR!")
End SubFire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Persze, de bent is van a kódban. Ha rálépsz az adott cellára, amiben a kép elérése van akkor egyből betölti(már ha valóban létező képről van szó). Próbáld ki. A gombos megoldást csak érdekességnek szántam. Ha nem kell akkor töröld ki a makróból a commandbutton1_Click() metódust, meg persze töröld a gombot is.
Pár módosítást eszközöltem, mert a korábbi verzió mindig megpróbál betölteni egy képet, ha az adott cella nem üres. Ez zavaró lehet hiszen ha egy cellában szám vagy szöveg van és az nem egy kép elérési útvonala, akkor hibát dob. Ez a javított kód.Private Sub CommandButton1_Click()
JPGFile = Application.GetOpenFilename("JPG files,*.jpg", , "Select picture...", , False)
If JPGFile <> False Then
Range("B2") = JPGFile
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Picture = LoadPicture(JPGFile)
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo errorhandling
xstr = LCase(Target)
Pos = InStr(1, xstr, ".jpg", vbTextCompare)
If (Target.Cells.Count = 1) And (Pos > 0) Then
Range("B2") = Target
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Picture = LoadPicture(Target)
End If
Exit Sub
errorhandling: MsgBox ("Multi Cells Selection found or FileOpen ERROR!")
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Oks, akkor leírom. Szóval, ha megsasolod a képet, akkor látnod kell, hogy B20-B23 tartományban beírtam képek elérését(de bárhova írhattam volna). Ha ezekre a cellákra kattintasz vagy rámész a kurzormozgatókkal, akkor egyből betölti a képet. a B2 cella csak kiírja, hogy épp melyik képet látod.
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Na így már tiszta, mit is szerettél volna elérni.
Munkafüzet1 - Munka1 (Code)
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errorhandling
xstr = LCase(Range("B2"))
Pos = InStr(1, xstr, ".jpg", vbTextCompare)
If (Pos > 0) Then
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Picture = LoadPicture(xstr)
End If
Exit Sub
errorhandling: MsgBox ("FileOpen ERROR!")
End SubNa, asszem ez lesz az
Ha nem a B2-ben lesz az adat akkor egyszerűen módosítsd a makróban, egy helyen kell.Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Oly
senior tag
Az előzőt sikerült megoldanom. Egyszerű jelszavazással.
Viszont az nbk által feltett kérdés válasza engem is érdeklene. kraftxld válasza nem volt valami lényegre törő.
SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S
-
félisten
Hali!
Nem tudom, hogy egy ennyire egyszerű "azonosítás" megfelelne-e. Futtasd a makrót és láthatod, hogy milyen infókat tudsz lekérni ill. azok mit adnak vissza. Ha elég pl a számítógép neve és felhasználó alapján is loggolni, akkor megfelelhet.
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub CommandButton1_Click()
List_All_Environ_info
End Sub
Function List_All_Environ_info() As String
Dim Counter As Integer
Counter = 1
Do Until Environ(Counter) = ""
Cells(Counter, 1).Value = Environ(Counter)
Counter = Counter + 1
Loop
End FunctionFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Remélem erre gondolsz
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub CommandButton1_Click()
'List_All_Environ_info
WriteToTextFile
End Sub
Function List_All_Environ_info() As String
Dim Counter As Integer
Counter = 1
Do Until Environ(Counter) = ""
Cells(Counter, 1).Value = Environ(Counter)
Counter = Counter + 1
Loop
End Function
Sub WriteToTextFile()
MyFile = "d:\" & "myfilename.txt"
fnum = FreeFile()
Open MyFile For Append As fnum
Write #fnum, Now(), Environ("USERNAME")
Close #fnum
End SubFire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Workbook_Open()
MyFile = "d:\" & "myfilename.txt"
fnum = FreeFile()
Open MyFile For Append As fnum
Write #fnum, Now(), Environ("USERNAME")
Close #fnum
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Igen, valóban, adatbázishoz kellene kötni, természetesen a legnyilvánvalóbb választás az Access. Vannak olyan feladatok, amelyek esetén már nem érdemes(még ha lehetséges is) Excelben makrózni.
Mondjuk ez a csoport dolog így nem teljesen világos a számomra, ezt látni kellene, meg azt is, hogy mi legyen a végeredmény(amit ki akarsz hozni belőle). Így csak vaktában lövöldözné(n)k.
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
Az első érvényesítés (F1) az osztályfőnökök neveit hozza, az A1:D1 tartományt.
Az osztályoknak így adj nevet: kijelölöd az A1:A20 tartományt, Beszúrás - Név - Létrehozás - Felső sorból.
A G1 érvényesítésénél a forrás: =INDIREKT(F1)Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
-
félisten
-
perfag
aktív tag
"Azt szeretném elérni, hogy az osztályfőnökök listájából választva már csak az adott osztály névsorából választhassak." -- ha ezt még nem oldottad meg ajánlom figyelmedbe: [demo]
A promo lapot töröld ki!
A Lists lapon vannak felsorolva a csoportok, az első sorban megadott csoport nevek közül választhatsz a Sheet2 első lenyíló listájában. A választásodnak megfelelően beáll a második lista (ezt egy Worksheet_Change makró segíti).
Az egészet tartomány nevek segítik, mondjuk én ezt dinamikusra állítanám, nem fixre.
Jelezz vissza, valami ilyesmire gondoltál-e egyáltalán. -
félisten
Hali!
Hát ha (bocs de nem néztem meg) az Adatok/Érvényesítés segítségével hozol létre lenyílót, akkor ott beállítható, hogy az üres cellák ne jelenjenek meg. Ez egy régebbi kép, nem konkrétan a te feladatodhoz tartozik
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
perfag
aktív tag
A dinamikusat így értem: [Névvel ellátott dinamikus tartomány létrehozása munkalapon]. Ettől "intelligens" lesz a tartomány név, adatokat adhatsz a végéhez, vagy törölhetsz a végéről, a listádban nem lesznek üres helyek.
-
félisten
Hali!
Ööö, szerintem itt valami félreértés van. Az Üres cellák mellőzés opció az nem arra vonatkozik, hogy a kijelölt tartományban lévő üres cellák ne jelenjenek meg a lenyílóban, hanem arra, hogy tetszőleges értéket lehessen az érvényesített cellába.
A lenyílókat arra használják, hogy kitöltött tartományt jelenítsenek meg, pl hogy kategóriák közül lehessen választani, ergo érvényesítéskor olyan tartományt jelölj ki, amiben minden cella kitöltött vagy az lesz. A példát elsősorban a tartomány elnevezés alkalmazására adtam, bár így visszaolvasva, valóban félreérthető volt, sorry... Csak én is rosszul értelmeztem a problémád, mert azt hittem, hogy az érvényesített cellában van "szépséghiba" az üres cellával, nem pedig a lenyíló listájában...Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Makrós megoldást nem akarsz használni? Mert azzal megoldható természetesen...
Fire.
UI: Azért még megvárom Delila_1 válaszát, hátha van valami ötlete makró nélküli megoldásra.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Akkor a példádnál maradva (2. sorban vannak az adatok)
Private Sub CommandButton1_Click()
Dim My_Outlook As Object
Dim My_Mail As Object
Set My_Outlook = CreateObject("Outlook.Application")
Set My_Mail = My_Outlook.CreateItem(olMailItem)
With My_Mail
.To = Range("A2")
.Subject = Range("B2")
.Body = Range("C2") & vbLf & vbLf & Range("D2") & vbLf & vbLf & Range("E2")
.Display
End With
Set My_Mail = Nothing
Set My_Outlook = Nothing
End SubFire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Oly
senior tag
Igazából napi szinten akarom szétszedni az adatokat, ezért a Sheet-ek neve 2010.08.26 formátumban kellenének. Így amilyen nap van, annak megfelelő Sheetre másoljon.
SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S
-
Delila_1
Topikgazda
A dátum végére is tegyél pontot a lapneveknél, mert a VB saját változója (Date) is így írja.
Sub Lapok()
Dim sheetnev As String
sheetnev = Date
On Error Resume Next
Sheets(sheetnev).Select
If Err.Number <> 0 Then Worksheets.Add.Name = sheetnev
On Error GoTo 0
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
A lapnév mindig string típusú. A #8005-ben ezért dimenzionáltam.
Dim sheetnev As String
Kipróbáltam, ha a J1-ben van a MA() függvény, bár ott az alapbeállítási formában (2010.08.26) jelenik meg, a létrehozott új lap neve ponttal a végén születik. Újabb futtatásnál a "pontos" lap lesz aktív.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Amlogic S905, S912 processzoros készülékek
- BestBuy ruhás topik
- Cyberpunk 2077
- Vodafone mobilszolgáltatások
- OLED TV topic
- Gaming notebook topik
- A fociról könnyedén, egy baráti társaságban
- AMD GPU-k jövője - amit tudni vélünk
- Anime filmek és sorozatok
- A Honor és a Huawei uralja a kínai mobilpiacot
- További aktív témák...
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Windows 10 Home COA fizikai licencek kiárusítás ingyenes szállítással