- Microsoft Excel topic
- Szilárdtest-akkumulátorokat fejleszt Kína, jöhet az áttörés?
- Ha Trump győz, Elon Musk politikai tanácsadó lehet
- Bittorrent topik
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Milyen routert?
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- A választási tévinformációk ellen küzd a Meta
- Xiaomi AX3600 WiFi 6 AIoT Router
- QNAP hálózati adattárolók (NAS)
-
IT café
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
-
WildBoarTeam
aktív tag
válasz nagytomi10 #7063 üzenetére
Ez attól függ mit akarsz csinálni.
Például nézted a #6541 hsz-ben lévő xls-t?
Én kipróbáltam. A Munka2-t átneveztem Találatok-ra, a hét számait tartalmazó címsort átmásoltam rá a Munka1-ről
Beírtam a Munka1 A1 cellájába a nevet, amit ki akarok gyűjteni és szépen hozta.Ja, és én modulként vettem fel a VBA editorban és nem a Microsoft script editorban.
blabla
-
perfag
aktív tag
válasz nagytomi10 #7063 üzenetére
nem működik - ennél azért több infót adj, ha kérdezel!
Milyen Exceled van? Ha 2007-es, akkor Office gomb, Az Excel beállításai ..., Adatvédelmi központ, Az Adatvédelmi központ beállításai .., Makróbeállítások: Az összes makró engedélyezése -- ez megvolt? Ettől fut a makró.
Ha a makró fut, de hibát jelez, akkor valószínűleg nincs Találatok, vagy Munka1 nevű munkalapod. Ebben az esetben ugyanis a makró Subscript out of range üzenettel kiakad. -
WildBoarTeam
aktív tag
válasz nagytomi10 #7066 üzenetére
Próbáld meg linkelni a fájlt, mert így nehéz lesz megtalálni a hibát.
vagy próbáld meg lépésenként futtatni a makrót (VBA-ban F7 bill.) és látni fogod, hogy hol akad meg a hibával.blabla
-
WildBoarTeam
aktív tag
válasz nagytomi10 #7068 üzenetére
Tehát akkor a Sheets("Találatok").Select sor még jó.
Próbáltad idézőjelek nélkül? Rows(2).Select (így is működnie kell)
Mert ez ugye kijelöli a második sort, majd elmegy az utolsó sorig, ahol adatot talál (próbáld ki manuálisam: kijelölöd a 2. sort, majd Shift+End+lefelenyíl), végül a kód következő soraiban törli a tartalmát a kijelölt résznek.
Szerintem szedd ki az idézőjeleket, ha nem lesz jó, akkor próbálkozunk mással.blabla
-
perfag
aktív tag
válasz nagytomi10 #7068 üzenetére
Tegyél elé egy ActiveSheet.-et, és a következő sorba is a Range elé is.
-
WildBoarTeam
aktív tag
válasz nagytomi10 #7071 üzenetére
2003-at használsz amúgy?
Nekem egyszer volt hasonló jelenségem (tán még a hibaüzenet is ez volt). Delila_1-val néztük ugyanazt a fájlt. Ő 2007-es excelben, én meg 2003-asban és nekem ugyanígy hibaüzenettel megállt, nála meg ment rendesen minden. Én azt csináltam, hogy nyitottam egy új modult a VBA-ban, átmásoltam oda a kódot, töröltem a régi modult és működött. Ez csak egy tipp, ha 2003-ad van.blabla
-
perfag
aktív tag
válasz nagytomi10 #7071 üzenetére
Most a munkahelyemről, itt 2003-as Excelen: Activesheet. kell az 5., 6., 30. és 32. sorokba és műxik.
-
perfag
aktív tag
válasz nagytomi10 #7088 üzenetére
Biztos, hogy akarsz üzenetet? Nem tudom mennyi adattal dolgozol, de beleszaladhatsz egy olyanba, hogy csak kattingatsz és kattintgatsz ...
A VBA On Error hibakezelőjét nézd meg a súgóban, vagy olvasd el Chip Pearson összefoglalóját. [Error Handling in VBA]
Én az On Error Resume Next-re szavazok, de ha kellenek a cellák ahol az ismétlődések vannak akkor inkább gyűjtsd ki egy listába.
Óvatosan a hibakezelővel, ki is kell kapcsolni! különben nagyon elszáll az Excel, ments gyakrabban. -
Delila_1
Topikgazda
válasz nagytomi10 #7088 üzenetére
Hibakezeléssel:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets("Találatok").Select
ActiveSheet.Rows("2").Select
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
sor_k = 2
sz = Sheets("Munka2").Cells(1)
Sheets("Munka1").Select
On Error GoTo Hiba
Cells.Find(What:=sz, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
sor = Selection.Row: sor_m = sor + 1
Rows(sor).Copy Sheets("Találatok").Rows(sor_k)
sor_k = sor_k + 1
Do 'Keresés ismétlése
Cells.FindNext(After:=ActiveCell).Activate
sor = Selection.Row
Rows(sor).Copy Sheets("Találatok").Rows(sor_k)
sor_k = sor_k + 1
Loop While sor >= sor_m
Sheets("Találatok").Select
usor = ActiveSheet.UsedRange.Rows.Count + 1
ActiveSheet.Rows(usor).Select
Selection.Delete Shift:=xlUp
ActiveSheet.Cells(1).Select
Application.ScreenUpdating = True
Exit Sub
Hiba:
MsgBox "Nincs '" & sz & "' érték a Munka1 lapon"
End Sub2003-as verzióban írtam, ahhoz nem kellett az ActiveSheet. Látom, áttetted a Munka2!A1-be a keresendő értéket. Jobb, mert ha az adatok között egyébként nem szerepelne, a Find ezt az egyet megtalálná.
[ 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
válasz nagytomi10 #7088 üzenetére
Az
usor = ActiveSheet.UsedRange.Rows.Count + 1
végéről töröld ki a +1-et.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
válasz nagytomi10 #7143 üzenetére
Azért töröltetettem ki az utolsó sort, mert a Do - Loop ciklusban az első találat sorát az utolsó után mégegyszer beírja.
Ha kijelölsz egy területet (pl. Range("A1100").select), akkor azon a területen keres a Find.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
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen