-
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
-
VGYke
addikt
Lejárt az időm, bocs... a fentiekhez annyit, hogy egy megoldást tudok:
Do - Loop feltételes ciklussal megkeresem mi van a "H1"-be mint oszlop elnevezésbe írva és ha az ami, oda kell beírni az adatokat (példámban ahol vége a ciklusnak, 8, ha törlünk, hozzáadunk oszlopokat, akkor más).
De nincs erre valami elegánsabb, rövidebb megoldás?[ Szerkesztve ]
kutya az ember legjobb barátja... lenne, ha tudna kölcsönadni
-
poffsoft
addikt
nem lehetne elnevezned a tartományokat mondjuk H : H ="forrás" és G : G ="cél"?
és cells helyett a range("forrás").range("A" & I) -vel hivatkozni a cellákra?Vagy másik megoldás a lapodhoz rendelni egy subot, ami minden változáskor megkeresi, hogy hová került a H oszlop fejléce. De ezt nem mondanám elegánsnak...
[ Szerkesztve ]
[ Szerkesztve ]
-
Delila_1
Topikgazda
A makró kiírja a Blabla szöveget tartalmazó cella címét, és beteszi a sor és az oszlop változókba a címnek ezt a két adatát, további felhasználás céljára.
Sub keres()
Dim ter As Range, CV As Variant, sor As Long, oszlop As Long
Set ter = Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, _
ActiveSheet.UsedRange.Columns.Count))
For Each CV In ter
If CV = "Blabla" Then
sor = CV.Row: oszlop = CV.Column
MsgBox CV.Address
Exit For
End If
Next
'A sor és oszlop változó további felhasználása
'...
'...
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
Az ActiveSheet.UsedRange.Rows.Count az aktív lap utolsó kitöltött sorának a számát adja, az ActiveSheet.UsedRange.Columns.Count pedig az oszlopét.
Ebből következik, hogy a ter nevű változónak az A1 cellától az utolsó használatban lévő oszlopig és sorig tartó területet adjuk meg. Ebben a tartományban keressük a meghatározott szöveget.
Én is autodidakta módon tanulok.
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
Az ActiveSheet.UsedRange.Rows.Count az aktív lap utolsó kitöltött sorának a számát adja, az ActiveSheet.UsedRange.Columns.Count pedig az oszlopét.
Ebből következik, hogy a ter nevű változónak az A1 cellától az utolsó használatban lévő oszlopig és sorig tartó területet adjuk meg. Ebben a tartományban keressük a meghatározott szöveget.
Én is autodidakta módon tanulok.
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
Egy kicsit egyszerűsítettem a 2. adatnál. Kevesebb változó, kevesebb számolás.
El tudod küldeni? Megnézném, mi lassítja.
A változók nevét érdemes úgy meghatározni, hogy utaljanak a tartalmukra.Sub Kitolt_1()
Dim WS As Worksheet
Dim sor%, usor%
Set WS = Sheets("Lekérdezés")
usor% = WS.UsedRange.Rows.Count
For sor% = 1 To usor% - 1
Cells(sor% + 1, 1) = WS.Cells(sor%, 1)
szla = WS.Cells(sor%, 2)
Cells(sor% + 1, 2) = Left(szla, 8) + "-" + Mid(szla, 9, 8) + "-" + Mid(szla, 17, 8)
'......hasonló 8. oszlopig
Next sor%
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.
-
VGYke
addikt
Magamnak válaszolok, de hátha valaki tudja a megoldást.. Az a baj, a VB kiakad a vasúti sínnél (hiányzik).Átírtam a fentieket (gondolkodás nélkül, primitíven):
Do While Application.WorksheetFunction.Match(Cells(i, 1), Range(Cells(i + 1, 1), Cells(10, 1)), 0) = True
A Do While -ba írtam már mindent: "most: TRUE, előbb>0; isnumeric(), stb", nem hathtja meg. A Vasúti sínnél kiakad.[ Szerkesztve ]
kutya az ember legjobb barátja... lenne, ha tudna kölcsönadni
-
poffsoft
addikt
If Not IsError(Application.WorksheetFunction.Match(Cells(i, 1), Range(Cells(i + 1, 1), Cells(10, 1)), 0) Then Application.WorksheetFunction.Match(Cells(i, 1), Range(Cells(i + 1, 1), Cells(10, 1)), 0)
legalábbis gugli szerint
az előző kérdésemre senki semmit?[link]
[ Szerkesztve ]
[ Szerkesztve ]
-
félisten
Igen, jó kis tréfa, kár hogy most magadat viccelted meg. 2 megoldás is lehet
1. SND_SYNC-re cseréled a SND_ASYNC-et (ilyenkor megáll a lejátszás ha pl kilépsz az excel-ből
2. WAVFile helyett Vbnullstring-el hívod meg újra a playsound-ot.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
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Sub Play_Click()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
WAVFile = "D:\test.wav"
Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
Private Sub Stop_Click()
Call PlaySound(vbNullString, 0&, SND_ASYNC Or SND_FILENAME)
End SubMegjegyzés
A deklarációba bekerült nálam a PtrSafe, mert x64-es a rendszerem. 32 bites rendszernél nincs rá szükség.[ 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
Mese a megjegyzésekben.
Sub Gyomlal()
'Az A1:A10 tartomány beírása az "eredeti" tömbbe
eredeti = Application.Transpose(Range("A1:A10"))
'Egyformák törlése az A oszlopból
For sor = 10 To 1 Step -1
If Application.CountIf(Columns(1), Cells(sor, 1)) > 1 Then _
Cells(sor, 1).Delete Shift:=xlUp
Next
'A kigyomlált A1:Ax tartomány beírása az "uj" tömbbe
usor = Range("A1").End(xlDown).Row
uj = Application.Transpose(Range("A1:A" & usor))
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.
-
VGYke
addikt
Ok látom, ezen kérdésemmel rossz helyen járok, de tudnátok javasolni megfelelő fórumot? Kiegészítés: nem Excel, hanem vagy Office, vagy win10 probléma, mert Word-nél is ugyan ezt csinálja, beszúrt link-re kattintva, hiba!
kutya az ember legjobb barátja... lenne, ha tudna kölcsönadni
-
VGYke
addikt
Bocsánat, most látom lemaradt a kérdésem: az adott feladatra tud valaki egyszerűbb megoldást?
1-munkalapon a "szájbarágós" képletekkel, 2-munkalapon az egymásba másolt képletekkel mutatom be a saját megoldásomat, ami túl bonyolultnak tűnik számomra.
Van egyszerűbb megoldásod?
kutya az ember legjobb barátja... lenne, ha tudna kölcsönadni
-
-
Fferi50
őstag
Szia!
A képleted nem pontos! Az FKERES függvénynek van egy negyedik paramétere, amelyik azt határozza meg, hogy pontos egyezést keressen-e vagy közelítőt. Ha ezt a paramétert elhagyjuk, akkor közelítő egyezést keres.
Ezért a képletedet a 4. paraméterrrel ki kell egészíteni:=HAHIBA(FKERES(DÁTUM($A3;B$2+1;1)-1;RTab;2;0);"")
Üdv. -
Fferi50
őstag
-
félisten
-
félisten
Ilyen nem fordulhat elő, kivéve, ha az
Összes!A2
cellában a hiperlink URL címe és felirata eltér. Csak vidd a hiperlink fölé az egérkurzort és ellenőrizd.
Összes!A2 | Munka2!A1[ 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
Akkor csak arról van szó, hogy leklónozd a hiperhivatkozást? Ha igen, akkor
1. ELTOLÁS fx-re semmi szükség
2. Csak makróval lehet megoldani (tudom, írtad, hogy makró nélkül, de úgy nem megy)
# ALT+F11
# ThisWorkbook/jobb egér/Insert Module
# beilleszted az alábbi kódotFunction FireGetURLFromHyperlink(MySrcRange As Range) As String
FireGetURLFromHyperlink = MySrcRange.Hyperlinks(1).Address
End Function# így hivatkozol egy hiperlinket tartalmazó cellára
=HIPERHIVATKOZÁS(FireGetURLFromHyperlink(Összes!A2);Összes!A2)
[ 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
Ha a legelején ezt így írtad volna le, akkor nem kellett volna köröket futni...
Én biztos nem foglalkoznék se képlettel, se makróval ez esetben, hanem az Összes lapon egy szűrőt dobnék a 2. sorra, az alapján bármely oszlop szerint lehet szűrni, szűrés után kijelölni a szűrt sorokat, aztán copy-paste-el meg beilleszteni a Keres lapra, ennyi(hivatkozások is jók lesznek).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
Ennek a kérdésnek semmi értelme, mert:
1. Teljesen lényegtelen, hogy egy adott XLS/XSLX táblázatot mikor nyomtattál ki, ha közben eltelt 1 év... (pl. 1 éve kinyomtattál egy Excel táblát, de 1 órája meg nyomtattál akármit...)
2. Az OS automatikusan hozzárendeli a fájlhoz, az utolsó nyomtatási idejét, de ez nem mérvadó, lásd feljebb... (jobb egér a fájlon, tulajdonságok/részletek fül -> utolsó nyomtatás dátuma)Szóval, ha nem akarod, hogy beszáradjon a masina (van benne tapasztalatom, most már kb. 7-9 éve az ECO Tank Epson-okkal), akkor minden hónapban 1x nyomtass ki egy szines képet, jó minőségben, oszt' ennyi...
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)
-
Fferi50
őstag
Szia!
Például: abban a munkafüzetben, amiben a makró van, egy munkalap egy cellájába beírod a következő nyomtatás dátumát(időpontját). A makróval megnézed, hogy a cellában levő dátum/idő elmúlt-e már, ha igen akkor átírod a dátumot a következőre és nyomtatsz egyet, ha nem, akkor a makrónak nyomtatás nélkül vége.
Üdv.[ Szerkesztve ]
-
TheSaint
aktív tag
Új hozzászólás Aktív témák
- Renault, Dacia topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- OLED TV topic
- Horgász topik
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- gban: Ingyen kellene, de tegnapra
- Tőzsde és gazdaság
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Elektromos cigaretta 🔞
- További aktív témák...
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.