Hirdetés
- Telekom mobilszolgáltatások
- Svájcban bukkant fel egy Berlinbe készülő HMD
- Milyen okostelefont vegyek?
- Android dual SIM okostelefonok
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Okosóra és okoskiegészítő topik
- Xiaomi Redmi Note 5 Global
- Samsung Galaxy S25 Edge - a tegnap határán
- Google Pixel 9a - a lapos munka
- Samsung Galaxy Watch8 - Classic - Ultra 2025
-
Mobilarena
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
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #16499 üzenetére
Még annyi hozzá, hogy jelenleg fordítva működik a makró. Van pártíz sor és 10 oszlop a tömbben. Az oszlopok számát tudom növelni szükség szerint, majd amikor feltöltöttem akkor
ranCelterulet.Value = Application.Transpose(varSpss_adatsor())
paranccsal iratom ki a szükséges formátumban.
Ez itt azt jelenti, hogy ne is próbálkozzak sorok hozzáadásával mert csak az oszlopok bővíthetőek?
Minél többet olvasok utána annál kevésbé értem. -
m.zmrzlina
senior tag
Egy fix szélességű de változó hosszúságú tömböt szeretnék létrehozni és azt feltölteni adattal. (kb tíz sor és néhányszor tíz oszlop).
Sub test()
Dim intVmax As Integer
Dim intS As Integer
Dim intO As Integer
Dim tomb1() As Variant
intVmax = 1
ReDim Preserve tomb1(1 To intVmax, 1 To 50)
For intS = 1 To 5
For intO = 1 To 50
tomb1(intS, intO) = intS * intO
Next
intVmax = intVmax + 1
ReDim Preserve tomb1(1 To intVmax, 1 To 50)
Next
End SubA problémám a tömb ReDim parancsánál van. Itt <Subscript out of range> hiba adódik. Nyilván keverem a sort és az oszlopot de nem tudom hogy hol.
Minden segítséget előre is köszi. -
Delila_1
veterán
válasz
peterszky #16495 üzenetére
Ez a makró a Munka2 lap A oszlopába írja az adatokat.
Sub mm()
Dim sor%, usor%, WS As Worksheet
Set WS = Sheets("Munka2")
sor% = 3
usor% = WS.Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets("Munka1").Select
Do While Cells(sor%, "A") <> ""
If UCase(Left(Cells(sor%, "E"), 3)) = "E (" Then
WS.Cells(usor%, "A") = "P: " & Cells(sor%, "C") & ", H: " & Cells(sor%, "D")
usor% = usor% + 1
End If
sor% = sor% + 1
Loop
End Sub -
peterszky
őstag
Sziasztok!
Lenne egy Excel + VB kérdésem. Adott egy táblázat: [link]
Amit szeretnék:
- az F oszlop értékein végigmenni
- ha e/E-s értéket találunk, akkor a zárójel közötti T-s érték (id oszlopra utal) érdekes
- ez alapján a T-s érték alapján sort megkeresni és abból a hossz / pozíciót elmenteni (pl: "H: [érték], P: [érték]" formában, ez mehetne akár egy másik worksheetre vagy egy szöveges fájlba is, mindegyTehát egy példa:
- elindul a keresés
- F5-nél találat -> e(T3)
- sor keresése az id oszlop szerint T3-ra
- mentés "P: 14, H: 35"
- tovébbNem tudom, hogy ez így ebben a formában megvalósítható-e?
-
Excelbarat
tag
válasz
Excelbarat #16493 üzenetére
Bocs pont lejárt a szerkesztési idő
de örömmel nyugtázom hogy a probléma megoldódott azzal hogy az űrlapvezérlőt lecseréltem ActiveX vezérlőre
-
Excelbarat
tag
Hi
Egy kis makró segítség kellene!
Ha van 2 darab jelölöm (az egyik heti bontást eredményez a másik havit) amihez egy-egy makró hozzárendelve. Hogy tudom azt elérni hogyha az egyik aktív (tehát rámegyek az elsőre és bejelöli azt) akkor ha megint rámennek ne hívja meg a makrót mivel épp már lefutott. (Ilyenkor ugye hibát ír ki mert már lefutott)
pl. a havi bontásom így néz ki
Private Sub monthbutton_Click()
Call havibontás
End Sub -
poffsoft
veterán
válasz
Vladek83 #16491 üzenetére
Próbáld ezt a módosítást.
"Sheet1" a munkalap neve, amit menteni akarsz.....
'mentünk ha még nincs ilyen névvel fájl
If Dir(BackupLocation & "\" & inputFileName & FileExt) = "" Then
'mentünk
Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs BackupLocation & "\" & inputFileName & FileExt
Call MsgBox("Fájl elmentve " & inputFileName & " névvel.", vbOKOnly, "Mentés")
Else
... -
rtom
senior tag
válasz
Excelbarat #16488 üzenetére
Jó lenne, de úgy látom, hogy különböző adatbázisokból táplálkozó kimutatásoknál nem működik, legalábbis nálam a kapcsolatoknál csak a meglévőt dobja fel.
-
Excelbarat
tag
Ha esetleg 2010-es excelt használsz akkor nagyon könnyen
Beszúrsz az egyikhez egy szeletelőt majd utána beállítod a kapcsolatot a kettő között.
Így tudod megtenni ezeket:
A kimutatás beállítás fülén szerepel a Szeletelő beszúrása ott bepipálod hogy melyik(ek) legyenek. (akár az összeset) Szépen elrendez.
Utána amelyiket akarod hogy a többihez is tartozzon jobb gomb rá - Kimutatáskapcsolatok és kiválaszt melyik.
ebben a hozzászólásban egy videó is van linkelve.
Esetlegesen problémát okozhat (nem kis fejtörés után jöttem rá) hogy ha régebbi fájlt (ergo nem 2010-es és az ablakban az szerepel, hogy kompatibilis üzemmód) akkor először el kell mentened 2010es fájltípusban CSAK ekkor lesz aktív a szeletelő beszúrása. (mivel ez csak 2010es verziótól érhető el)Delila_1 köszönöm a válaszod a diagrammos megoldásra. Még ez is jobb minthogy az összes érték egymásba lógjon
-
Delila_1
veterán
válasz
Excelbarat #16483 üzenetére
Rámutatással nem tudom, de kiválasztással megy.
Sub ertek_kiiras()
Selection.ApplyDataLabels ShowValue:=True
End SubA makróhoz rendelj billentyűkombinációt (Makrók, vagy F8), kiválasztod az ertek_kiiras-t, Egyebek, betű megadása.
Kiválasztod az adatpontot, megadod a bill. kombinációt. Erre azért van szükség, mert ha egy gombhoz rendelnéd a makrót, a rákattintással megszűnne az adatpontod kiválasztottsága.
Az érték eltüntetéséhez a másik makró, amihez egy másik bill. kombinációt kell rendelned:
Sub ertek_torles()
Selection.ApplyDataLabels ShowValue:=False
End Sub -
rtom
senior tag
Még1 kérdés: megoldható makro nélkül, hogy ha van 3 kimutatásom, az elsőn beállított szűrési feltételek automatikusan megjelenjenek a másik kettőn is? Hivatkozást nem vette.
-
rtom
senior tag
A szorzatösszeg működik, köszönöm
Másik kérdésem: egy mások által már megnyitott, a fileszerveren lévő táblából akarok pivot-ot frissíteni, de a makro hibát dob, gondolom amiatt, hogy másik felhasználónál van nyitva. Próbálkoztam így:
Open "\file_elérési_út_és_filenév" For Random Access Read As #1
ActiveSheet.PivotTables("Pivot1").PivotCache.Refresh
Close #1de sajnos sikertelenül
-
Excelbarat
tag
Egy kis fejtörő
Létezik olyan megoldás excelben, hogy ha egy diagramon rámutatok egy oszlopra (sok oszlop van és értelmetlen kiírni az értékeket, ráadásul sávként nem igazán funkcionálna jól így az a megoldás elvetve) akkor kiírja az értékét? természetesen ha másik oszlopra mutatok akkor a másikétValamiféle makró ezt meg tudná oldani?
Bármilyen megoldásra vevő vagyokVagy esetleg egy link ahol találok ilyesmit.
-
Mutt
senior tag
válasz
Vladek83 #16479 üzenetére
Hello,
Formázásokat átviszi, ha a kódban az értékek másolása elé mégberakod, hogy:
'formátumok másolása is
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceThemeAzonban ezzel nem biztos hogy tényleg mindent másol amire neked sükséged van, ezért inkább egy sima másolat készítését javasolnám. Ebben már a fájlneve kérdés is benne van.
Sub Masolat2()
Dim FileExt As String 'aktuális fájl kiterjesztése
Dim FileName As String 'aktuális fájl neve
Dim inputFileName As String 'felhasználó által megadott név
Dim FileExtension
Const BackupLocation As String = "C:\Temp" 'ebbe a mappába mentjük
Const masolando As String = "Sheet1" 'ezen nevű munkalapot mentjük
If MsgBox("Szeretnél másolatot készíteni?", vbYesNo, "Másolat") = vbYes Then
'kiterjesztés meghatározása
FileExtension = Split(ThisWorkbook.Name, ".")
FileExt = "." & FileExtension(UBound(FileExtension))
'az aktuális fájlnévet javasoljuk alapértelmezettnek
FileName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - Len(FileExt))
'és még kiegészítjük a mai dátummal
FileName = FileName & "_" & Format(Date, "YYYYMMDD")
'bekérjük a nevet
inputFileName = InputBox("Kérlek add meg a fájlnevét:", "Mentés másként", FileName)
'mentünk ha van név
If inputFileName <> "" Then
'megnézzük hogy létezik-e a célkönyvtár, ha nem akkor létrehozzuk
If Dir(BackupLocation, vbDirectory) = "" Then
MkDir BackupLocation
End If
'mentünk ha még nincs ilyen névvel fájl
If Dir(BackupLocation & "\" & inputFileName & FileExt) = "" Then
'mentünk
ActiveWorkbook.SaveCopyAs BackupLocation & "\" & inputFileName & FileExt
Call MsgBox("Fájl elmentve " & inputFileName & " névvel.", vbOKOnly, "Mentés")
Else
Call MsgBox(inputFileName & " már létezik!", vbExclamation, "Hiba")
End If
End If
End If
End Subüdv.
-
Mutt
senior tag
Hello,
...külső excel táblából fkeres-sel összeszedett adat megjelenik, míg ugyanezen adatból a szumha hibát ad...
SZUMHA mellett még ugyanígy érintettek a SZUMHATÖBB (SUMIFS), DARABTELI (COUNTIF), DARABHATÖBB (COUNTIFS), DARABÜRES (COUNTBLANK) és INDIREKT függvények is, vagyis bezárt fájlokon nem működnek. A Microsoft úgy gondolja, hogy ennek így kell lennie http://support.microsoft.com/kb/260415
Alternatív megoldások a lenti képlet helyett:
=SZUMHA([A.xlsx]Munka1!$A:$A;A2;[A.xlsx]Munka1!$B:$B)- szorzatösszeg használata
=SZORZATÖSSZEG(([A.xlsx]Munka1!$A:$A=A2)*1;[A.xlsx]Munka1!$B:$B)- CSE képletben a SZUM és HA használata
{=SZUM(HA([A.xlsx]Munka1!$A:$A=A2;[A.xlsx]Munka1!$B:$B))}üdv.
-
-
Vladek83
tag
Szia Mutt!
Köszönöm!!
'az aktuális fájlnévet használjuk mentendőhöz
FileName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - Len(FileExt) - 1)Azt, hogy tudom megcsinálni, hogy a fájl nevet én adjam meg, mert egy nap többször lesz mentés?
Már próbálgattam, de nem akar össze jönni....Köszi előre is!
-
rtom
senior tag
Újabb észrevételem, aminek nem tudom okát: külső excel táblából fkeres-sel összeszedett adat megjelenik, míg ugyanezen adatból a szumha hibát ad ...
Próbáltam úgy kikerülni a problémát, hogy makróból megnyitom és akkor updatelem a linket, de így sem megy
A kódom:
Open "DataFile_elérési_útvonala_és_neve" For Random Access Read As #1
Windows("Kimutatásfile.xls").Activate
ActiveWorkbook.UpdateLink Name:="\DataFile_elérési_útvonala_és_neve", _
Type:=xlExcelLinks
Sheets("Munka1").Select
Range("T69:X72").Select
Selection.Copy
Range("B69").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Close #1 -
csferke
senior tag
válasz
poffsoft #16474 üzenetére
Poffsoft és Delila!
Köszönöm fáradozásotokat.
DE rájöttem valamire
Ez a mondat Valószínűleg az a gondod, hogy a VBA csak "angolul" tudja a formátumokat... ragadta meg a figyelmem.
Windows-ban átállítgattam a számok formázását "angolosra" a magyar-nál és a szerb-nél ( ezres"." tizedes"," ) és láss csodát. Mindenféle nyakatekert vizsgálatok nélkül jól működik a számbevitel VBA-ból is meg simán az Excel-ből is.Az ember mindig tanul/rájön valamire.
köszi
-
poffsoft
veterán
válasz
csferke #16470 üzenetére
esetleg az int() ?
Sub test()
If IsNumeric(ActiveCell) Then
If ActiveCell.Value - Int(ActiveCell.Value) <> 0 Then
MsgBox "no"
Else
MsgBox "yes"
End If
End If
End Sub"Ha nem egész szám a bevitt szám (pl. 1,23) akkor nem jó a bevitt érték =>123.00"
Valószínűleg az a gondod, hogy a VBA csak "angolul" tudja a formátumokat... -
csferke
senior tag
válasz
Delila_1 #16464 üzenetére
Szia Delila!
Ezzel Double-val akadt egy kis gondom Az As Double helyett így is írhatod: Dim MyValueSzám#
A tizedes ","-t "."-ot jól értelmezi mivel mostmár számról van szó csak nem jó helyre rakja.Ha egész szám a bevitt (pl. 5800) akkor jól viszi be a cellába =>5,800.00
Ha nem egész szám a bevitt szám (pl. 1,23) akkor nem jó a bevitt érték =>123.00
Megoldás?Esetleg. Hogyan lehet megvizsgálni a MyValueSzám-ot, hogy egész szám-e vagy tartalmaz-e tizedesjelet vagy valahogy? Ebben az esetben:
If MyValueSzám egész then
ActiveCell = MyValueNum
else
ActiveCell = MyValueNum/100
endif -
Mutt
senior tag
válasz
Vladek83 #16452 üzenetére
Hello,
...csak egy adott lapot szeretnék menteni, egy megadott helyre ( képleteket nem, csak értékeket ..
Csináltam egy általánosat, amelyet könnyen tudsz magadnak beállítani.
Sub Masolat()
Dim FileExt As String 'aktuális fájl kiterjesztése
Dim FileName As String 'aktuális fájl neve
Dim FileExtension
Const BackupLocation As String = "C:\Archive" 'ebbe a mappába mentjük
Const masolando As String = "Sheet1" 'ezen nevű munkalapot mentjük
If MsgBox("Szeretnél másolatot készíteni?", vbYesNo, "Másolat") = vbYes Then
'összes cella másolása
Sheets(masolando).Cells.Copy
'új munkafüzet létrehozása
Workbooks.Add
'értékek másolása
Selection.PasteSpecial Paste:=xlPasteValues
'felkészülés a mentésre
'megnézzük hogy létezik-e a célkönyvtár, ha nem akkor létrehozzuk
If Dir(BackupLocation, vbDirectory) = "" Then
MkDir BackupLocation
End If
'filekiterjesztés meghatározása
FileExtension = Split(ThisWorkbook.Name, ".")
FileExt = FileExtension(UBound(FileExtension))
'az aktuális fájlnévet használjuk mentendőhöz
FileName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - Len(FileExt) - 1)
'és még kiegészítjük a mai dátummal
FileName = FileName & "_" & Format(Date, "YYYYMMDD")
'mentés XLSX formátumban (a többi típus a súgóban vagy http://msdn.microsoft.com/en-us/library/office/ff198017.aspx)
ActiveWorkbook.SaveAs FileName:=BackupLocation & "\" & FileName, FileFormat:=xlOpenXMLWorkbook
'bezárjuk az új ablakot
ActiveWindow.Close
Call MsgBox("Fájl elmentve " & FileName & " névvel.", vbOKOnly, "Mentés")
End If
End Subüdv.
-
rtom
senior tag
A Selection Change eseményt azért találtam jónak, mert egy vonalkódolvasóval viszek be adatokat egy kijelölt mezőbe, aminek hatására a kurzor a következő mezőre ugrik, így nem fut le a makró, csak ha kurzormogató esemény van.
A Cut metódusos sorod tetszik, de sajnos viszi a formátumot is magával, azt hogyan lehetne elkerülni?
Ha már postolok, egy problémám: szumha függvénnyel olvasatok be adatokat egy külső excel táblából, az elérési útvonal persze korrekten meg van adva, ha az adatforrás meg van nyitva, akkor korrekten működik, de mihelyst bezárom, mindehova az #ÉRTÉK hibát dobja, ennek mi lehet az oka?
-
Delila_1
veterán
-
csferke
senior tag
Elnézést
az imént lejárt a szerkesztési időm
ezért most kénytelen vagyok ismételni.
Sziasztok!
Először szeretném megköszönni Mutt és Delila segítségét a legördülő listák makróban-i használatával kapcsolatban.
És mindjárt kérdeznék is.
Dim Prompt, Title, Default, MyValue
...
...
ActiveCell.Offset(0, 6).Select
Default = ActiveCell.Value
Prompt = "jed.cena / kom"
MyValue = InputBox(Prompt, Title, Default, xpos, ypos)
ActiveCell = MyValueMeghatározom a változókat (Dim), a cella formátuma number xxx,xxx.xx (ezres vessző, tizedes pont). A kódban bevitt MyValue értéket viszont xxx.xxx,xx (ezres pont, tizedes vessző) formában teszi be és ezzel az értékkel nem tud számolni.
Ha csak direkt a cellába írok értéket akkor viszont megfelelően értelmezi a pontot/vesszőt.
A Dim sorban, feltételezem, string változók vannak definiálva. Több cellába is viszek értéket (szöveget, számot) ezzel a módszerrel. Ez addig jó is amíg szöveget vagy egész számot adok be.
A Dim-et lehet így is?
Dim Prompt
Dim Title
Dim Default
Dim MyValue
Dim MyValueSzám As ???
Ha igen, mit írjak a kérdőjelek helyett, hogy megfelelően tizedes szám legyen?köszi
-
csferke
senior tag
Sziasztok!
Először szeretném megköszönni Mutt és Delila segítségét a legördülők makróban-i használatával kapcsolatban.
És mindjárt kérdeznék is.
Dim Prompt, Title, Default, MyValue
...
...
ActiveCell.Offset(0, 6).Select
Default = ActiveCell.Value
Prompt = "jed.cena / kom"
MyValue = InputBox(Prompt, Title, Default, xpos, ypos)
ActiveCell = MyValue -
Mauzes
addikt
válasz
poffsoft #16457 üzenetére
Érdekes, nekem totál fos és csúnya eredményt ad, ha egy nagyobb táblát csak úgy bemásolok, formázni meg rémálom.
Na mindegy, csak egyszerűen nem értem, hogy amit a képernyőn látsz, az mégis miért tér el a valóstól. A Word és Ppt legalább ezzel nem küzdenek (még ha mással sajnos igen).
-
Csontikka
aktív tag
válasz
Mauzes #16455 üzenetére
teljesen igazad van, ezért írtam a zárójeles részt
(nézd nem ismerlek, van aki az officeban penge de sose hallott még róla hogy van screenshot gomb is a billentyűzetén, pláne arról, hogy még bizonyos részeit is lehet a képernyőnek kivágni, nem is kell az egészet.) Ezek szerint nem tartozol közéjük szerencsére
Ez erre volt finom utalás, természetesen nem megoldás a problémára hanem annak elfedése. -
Mutt
senior tag
válasz
alexnowan #16449 üzenetére
Hello,
...miért autómatikusan a bal szélső oszlopot látom csak a Row értékek között?
Utána olvasva ez és a többi felvetésed is szándékosan van így több adatforrás esetén.
A http://www.contextures.com/xlPivot08.html oldalon adnak pár megoldást, többnyire külsó adatforrásként elérve az adatsorokat megszűnik a korlátozás.üdv.
-
Mauzes
addikt
-
Mutt
senior tag
Hello,
Amit érdemes lenne még módosítanod az, hogy ne a SelectionChange eseménykor fusson a makró, hanem az Change eseménykor.
A mostani megoldás akkor is lefut, ha a lapon nncs változás csak egyik cellából egy másikba mész.
A SelectionChange pl. akkor lehet hasznos, ha a cella módosítás előtti értékére van szükséged.Ha a másolandó tartományban nincs képlet, akkor a Cut metódus 1 lépésben megcsinálja neked ami kell.
pl. Range("L2:M2").Cut Destination:=Sheets("cel").Range("B2")
üdv.
-
Vladek83
tag
Sziasztok!
Milyen makróval tudnám megoldani?
Van egy munkafüzetem, ami több lapból áll és csak egy adott lapot szeretnék menteni, egy megadott helyre ( képleteket nem, csak értékeket ) Gomb nyomására kérdezze meg, hogy menteni szeretném-e?
Előre is köszönöm! -
Geryson
addikt
Sziasztok! Melyik diagramtípussal tudnám a Z-tengelyt is feliratozni? Tehát van egy adatom, amit a X tengelyen és van egy diagramom, amit a Z-tengelyen szeretnék. (az egyik darabszám tengely, a másik pénz tengely).
-
Mauzes
addikt
Sziasztok!
Miért van az, hogy az Excel normál nézetében a képernyőn látottak és a nyomtatási kép (valamint a kinyomtatott anyag) nem egyezik meg? Tehát nem mindig ugyanott lesznek a sortörések, nem pont annyi távolság van az objektumok között, stb.
Én tök szépen beállítom, majd kiderül, hogy full másképp van a véglegesben. Nyomtatni mondjuk nem szoktam, de csomó elemet kell ppt-be raknom, amit enhanced metafile-ként illesztek be, és a táblázatokban szinte mindig másképp néz ki a beillesztett, mint ahogyan én azt megcsináltam normál nézetben. A page brake preview-ban is a nagyítás mértékétől függ, hogy a képernyőn hol vannak a sortörések, holott a valóságban nem változik semmi.
Tök zavaró, hogy sokszori ellenőrzésre tudom csak úgy beállítani az oszlopok szélességét, hogy az tényleg úgy nézzen ki, ahogyan azt én akarom.
-
alexnowan
aktív tag
Sziasztok!
apró pivot kérdés:
Ha több táblából dolgozom, akkor a kijelölt tábláknak miért autómatikusan a bal szélső oszlopot látom csak a Row értékek között?
Miért nem tudom kiválasztani melyik oszlop adatai legyenek ott?
Vagy valamit átállítottam?
Ugyanez az oszlopoknál...miért nem lehet "behúzogatós" módszerrel összerakni a táblát úgy mint egy adatforrás esetén?Remélem érthető a kérdésem...
Üdv,
-
poffsoft
veterán
mert a select és a pastespecial parancsok újra meghívják a makrót (miközben már fut), mindig egy újabb ciklust indítva....
Esetleg egy flaggal jelezhetnéd neki, hogy "mostnemkell":
(Ez az én favágó megoldásom):Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") = "s" Then Exit Sub
If Range("L2") = "valami" Then
Range("A1") = "s"
Range("L2:M2").Select
Selection.Copy
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2:M2").Select
Application.CutCopyMode = False
Selection.ClearContents
End If
Range("A1") = ""
End SubEz meg a korrekt megoldás:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Range("L2") = "valami" Then
Range("L2:M2").Select
Selection.Copy
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2:M2").Select
Application.CutCopyMode = False
Selection.ClearContents
End If
Application.EnableEvents = True
End Sub -
psg5
veterán
Üdv!
Akkor jól értelmezem,hogy excel 2003-ban egy cellában nincs mód rá, hogy 1024 karakternél több látszódjon?
-
Mutt
senior tag
Hello,
Ha nem megy felülről, akkor próbáld meg alulról.
A Sheets("Munka1").Range("A:A").End(xlDown).Offset(1, 0).Select rész helyett használd ezt
Sheets("Munka1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).SelectSajnos egyszerú megoldás az utolsó használt cellára/sorra/oszlopra nincs Excelben, mivel be tudnak zavarni az üres sorok, a szűrők, a rejtett oszlopok. Ezen az oldalon van pár tipp azért.
üdv.
-
Mutt
senior tag
Hello,
...amikor a "next" második köre következik, akkor a kapott eredményeket A2-től D2-ig rakosgassa, majd a harmadik körben A3-tól D3-ig, és így tovább....
Használd a Cells(sor, oszlop) tulajdonságot.
pl. a lenti példa az elsö 15 sor első 4 oszlopába tesz egy véletlen számot.
For sor = 1 To 15
For i = 1 To 4
Cells(sor, i) = rnd()
Next i
Next sorMásik megoldás lehet ez:
For sor = 1 To 15
Range("A" & sor & ":" & "D" & sor) = Rnd()
Next sorA lényeg a "A" & sor, amely A1, A2 stb. hivatkozást állít elő.
üdv.
-
D5
aktív tag
Sheets("Költségek").Range("J3").Copy
If Sheets("Munka1").Range("A3") = "" Then
Sheets("Munka1").Range("A3").Select
Else
Sheets("Munka1").Range("A:A").End(xlDown).Offset(1, 0).Select
End If
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=FalseEbben mi a baj? (az előző h.sz-hez tartozik...)
-
D5
aktív tag
Sziasztok!
nagy nehezen sikerült összerakni egy olyan makrót, amiben van "next", szóval szépen behelyettesít értékeket 1-15-ig, és az egyes cellák eredményeit bepakolja A1-től D1-ig, egymás mellé.
Egy gondom van: az összes kapott értéket egymásra pakolja, nem pedig egymás alá.
Vagyis lefut 1-gyel, és a kapott eredmények megjelennek.
Lefut 2-vel, és a kapott eredmények szintén A1-től D1-ig mennek, egymás mellé.
Nekem pedig az kellene, hogy amikor a "next" második köre következik, akkor a kapott eredményeket A2-től D2-ig rakosgassa, majd a harmadik körben A3-tól D3-ig, és így tovább...
Valakinek van valamilyen frappáns és könnyen megvalósítható ötlete? -
rtom
senior tag
Szevasztok!
Makró gondom van, ennek a kódnak a lefuttatásánál összeomlik az excel:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("L2") = "valami" Then
Range("L2:M2").Select
Selection.Copy
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2:M2").Select
Application.CutCopyMode = False
Selection.ClearContents
End If
End SubA makró az oldalhoz van rendelve, automatikusan fut le.
-
Roley_05
csendes tag
Sziasztok!
Milyen kóddal tudom leprogramozni makroban, hogy felugró értesítő ablakot leokézza?
köszönöm,
roley -
Delila_1
veterán
A nem publikus adatok helyére írj valami mást, utána tedd ki azt a füzetet, amiben dolgozol.
Most egészen más a kérdésed, mint először. Közben megcsináltam 3 lapra a 3 táblázatot makróval úgy, hogy tudja kezelni az újonnan bevitt neveket, és üzleteket. Ha azzal kezded, amire valójában szükséged van, nem kell 1 feladatnak többször nekiugrani.
Szerk.: nem néztem aprólékosan végig a makródat, de azt látom, hogy a vansor: fölé be kell tenne egy Exit Sub-ot, vagy a vansor: -os és a makesor: -os rész helyét cseréld fel.
-
Oly
őstag
válasz
Delila_1 #16426 üzenetére
Szia
A valóságban külön sheeteken vannak a táblák és a problémát az okozza, hogy minden költéshez van egy megjegyzés oszlop is, melyet a pivot nem tud betenni.
Így a Te makrós megoldásod hegeszthetem, de az összegző táblán elakadtam.Úgy akarom megcsinálni, hogy A1 cellába beírom a kívánt dátumot és akkor kilistázza, hogy adott napon kik mennyit költöttek az adott boltban (én mellé kiírja nekem a megjegyzést is, ezért nem jó a pivot)
Szóval, hogy tudom neki megadni, hogy rakja be új sorba az emberkét, ha nincs a listában?
Próbálkoztam, hogy beraktam egy ONERROR-t és akkor tegye be a változót egy új sorba, de valamiért folyton hibára fut:Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim sor%, usor%, sorB%, oszlopB%, WF As WorksheetFunction
Dim nev$, uzlet$
Set WF = Application.WorksheetFunction
usor% = Sheets("data").Cells(Rows.Count, "A").End(xlUp).Row
uszem% = Cells(Rows.Count, "A").End(xlUp).Row
Range("b2:u60") = ""
For sor% = 2 To usor%
If Sheets("data").Cells(sor%, 1) >= Range("a1") Then
nev$ = Sheets("data").Cells(sor%, 2)
uzlet$ = Sheets("data").Cells(sor%, 3)
On Error GoTo makesor
sorB% = WF.Match(nev$, Columns(1), 0)
GoTo vansor
makesor:
MsgBox "Hozzuk létre? " & nev$
Cells(uszem% + 1, 1) = nev$
sorB% = WF.Match(nev$, Columns(1), 0)
vansor:
oszlopB% = WF.Match(uzlet$, Rows(1), 0)
Cells(sorB%, oszlopB%) = Sheets("data").Cells(sor%, 4)
Cells(sorB%, oszlopB% + 1) = Sheets("data").Cells(sor%, 5)
End If
Next
End If
End Sub -
Oliverda
félisten
válasz
Excelbarat #16432 üzenetére
Köszi, de gőzöm sem volt arról, hogy ennek pontosan mi a neve.
Amúgy sosem használtam még a keresőt... azt sem tudtam hogy létezik.
-
Oliverda
félisten
Van két egymás mellett lévő oszlopom amiben számok vannak. Meg tudom-e azt csinálni, hogy ezen két oszlop értékeit folyamatosan összevesse az Excel, és a nagyobb értéket emelje ki mondjuk pirossal?
-
skoos
őstag
Segítsetek plíz. Egy 00007364 jellegű számsorcellából kéne kimásolnom az utolsó 5 karaktert egy másik cellába. Milyen függvény tudná ezt megcsinálni nekem?
-
Delila_1
veterán
Ha bővíteni akarod a táblázatodat (személy, üzlet), akkor nem jó ez az elrendezés, mert a 3 táblázat között nincs hely rá. A személyek számának a bővítéséhez inkább egymás mellett kell lenniük a táblázatoknak, az üzletekéhez pedig egymás alatt. Legjobb lenne külön lapokon elhelyezned a hármat.
Nézd meg Mutt válaszát, ott is az elhelyezés a gond, bővítéskor felülírják egymást.
-
Mutt
senior tag
Hello,
Tisztán képletekkel számolva itt van az én megoldásom.
4 megoldás is lehet, nagyjából a hasznossági sorrendben pedig.
1. Kimutatás (Pivot): előnye, hogy automatikusan bővíti az új nevekkel, üzletekkel a kimutatást. Hátránya nagyon nincs.
2. SZORZATÖSSZEG (Sumproduct): a hosszú képletek miatt a szerkesztése rizikós
3. SZUMHATÖBB (Sumifs): hasonló mint a 2-es opció, csak Excel 2007 vagy újabbal műxik.
4. Adatbázisfüggvények (Dsum): érthetőbb képletek azonban a feltéleket külön ki kell írni.A Pivot kivételével az összes megoldásban ha egy új név/üzlet szerepel, akkor azokat kézzel fel kell venni,
a képletek gond nélkül másolhatóak.üdv.
-
Mutt
senior tag
Hello,
Pár kérdés:
1. Korábban rendben működött ez a fájl a gépeden?
2. Nem lett törölve program a gépedről?A gond, hogy a VBA nem találja a refernciák között a keressett függvénykönyvtárat.
Egy próbát megér, hogy VBA Editor-ban a Tools -> References opcióban megnézed, hogy van-e a listában Xtable vagy Winwidgets és hogy be vannak-e pipálva.Ha nincs ilyened akkor rossz hír, hogy a fájlod használhatatlan lesz, hiszen a makró benne vmit csinál, de nem fog neki menni.
"Kikapcsolni" úgy lehet, hogy a makrót eltünteted a fájlból. Ezt megteheted ha:
1. Nem engeded futtatni a makrót. Régi Excelekben a biztonsági szintet magasra teszed és újranyitod a fájlt, akkor ha nem aláírt a makró nem fog futni. Újabbaknál elég ha egy másik helyre mented és újranyitod, ekkor megkérdezi hogy engeded-e futtatni a makrót.
2. Makrót nem tartalmazó formátumban mented a fájlt.
3. Kikommentezed a fájlban a makrót, így nem lesz mit futtatnia.
4. Kitörlöd a makrót a fájlból.Javasolt biztonsági másolatot készítened a 2 és 4-es pontok előtt.
üdv.
-
Mutt
senior tag
válasz
Delila_1 #16384 üzenetére
Sziasztok,
Hadd osszak meg én is 3 ide vágó trükköt.Egyik sem saját találmány.
1.
Az első legyen egy kattintás nélkül, dinamikusan változtatható grafikon.
Az eredeti innen van: http://chandoo.org/wp/2011/07/20/interactive-dashboard-using-hyperlinks/Ide felraktam egy mintát és hogy hogyan lehet megcsinálni.
2.
A másik trükk hasonlóan műkődik mint az 16384-es hozzászólásban megadott minta ahol egy objektumot elrejtünk vagy felfedünk attól függően, hogy mit választott a felhasználó.Az eredeti koncepció a www.clearlyandsimply.com blogról való, és bemutatja hogy mit lehet tenni ha túl sok oszlop van, és nem akarunk folyamatosan görgetni hogy lássuk a képernyőről "lelógó" értékeket.
A lényeg, hogy egy automatikusan felugró kis ablakban (ez valójában egy szövegdoboz) mindig megmutatja a sor nem látható értékét.Itt az eredeti fájl.
A saját megoldást nagyon átdolgoztam, megosztani nem tudom, de az ötlet innen jött.3.
Ez a megoldás az Excel 2010-ben bevezett kimutatás szeletelőt (Pivot - Slicert) használja. Szerintem nem sokan ismerik, miközben nagyon könnyen lehet interkatív kimutatásokat készíteni vele.A http://chandoo.org/wp/2010/12/08/dynamic-dashboard-video-tutorial/ oldalon láthatjátok.
üdv.
-
psg5
veterán
válasz
poffsoft #16411 üzenetére
Köszi,igen így márpróbáltam,de úgy 1300 karakternél többet akkor sem enged mutatni.
Valahol olvastam, hogy 32.676 karaktert be lehet írni, de csak 1024 fog látszani. 1024-től biztosan több látszik, ezért fura ez,de 1300 felett már nem engedni "látszani"
F2-vel kiírja ugyan,de marad fixen,+ enterrel nem csinál semmit
Na ezzel lehet kezdeni valamit? -
Oly
őstag
válasz
Delila_1 #16415 üzenetére
Szia
Nagggyon jó... az első...
A másodikon faragnom kell, mert a dátumokat nem vette figyelembe és egyéb apróságok.
Ezért lenne egy olyan kérdésem, hogy miként tudnám belevarázsolni azt a lépést, hogy a beviteli táblában új sor, vagy oszlop létrehozásánál az összegző táblához adja hozzá azt a számélyt, vagy üzletet.
Úgy gondoltam, hogy a sorB% = WF.Match(nev$, Columns(1), 0) hibára futása esetén kérdezzen rá, hogy "hozzá adja az új sort?"
Miként tudom erre a kérdésre rávenni?
IFERROR-ral? -
Delila_1
veterán
Két külön makróba írtam az alsó, és a felső táblázat kitöltését, de veheted egybe.
Sub Also()
Dim sor%, oszlop%, sorB%
sorB% = 15
For sor% = 10 To 13
For oszlop% = 2 To 4
If Cells(sor%, oszlop%) > 0 Then
Cells(sorB%, "A") = Date
Cells(sorB%, "B") = Cells(sor%, "A")
Cells(sorB%, "C") = Cells(9, oszlop%)
Cells(sorB%, "D") = Cells(sor%, oszlop%)
sorB% = sorB% + 1
End If
Next
Next
End SubSub Felso()
Dim sor%, usor%, sorB%, oszlopB%, WF As WorksheetFunction
Dim nev$, uzlet$
Set WF = Application.WorksheetFunction
usor% = Cells(Rows.Count, "A").End(xlUp).Row
If Range("A15") >= Range("A1") And Range("A15") <= Range("C1") Then
For sor% = 15 To usor%
nev$ = Cells(sor%, "B")
uzlet$ = Cells(sor%, "C")
sorB% = WF.Match(nev$, Columns(1), 0)
oszlopB% = WF.Match(uzlet$, Rows(3), 0)
Cells(sorB%, oszlopB%) = Cells(sorB%, oszlopB%) + Cells(sor%, "D")
Cells(sorB%, oszlopB% + 1) = Date
Next
End If
End SubA képen szereplő cellák helyéhez igazítottam a makrót. Bár nem látszanak a sor- és oszlopazonosítók, úgy vettem, hogy a kezdő dátum az A1-es cellában van.
-
Oly
őstag
Sziasztok
Szeretnék egy olyan táblázatot/adatbázis csinálni, melyben eloszthatjuk a költéseket.
(Valójában más adatok lesznek benne, ez csak példa)A célom az, hogy a lent látható első táblázatban összesítve legyen, hogy ki, melyik üzletben mennyit költött összesen a fent megadott dátumok közt, az összeg mellé pedig írja ki, hogy mikor vásárolt ott utoljára.
A második táblázatban írnám be az adott napi költéseket, melyet a 3. feléspításű táblázatban tárolnék el.
Ez már lehet, hogy az Excel határait súrolja, így szívesen veszek Access ötleteket is.
Egyelőre nem sok öteletem van
Előre is köszönöm a segítséget.
-
psg5
veterán
Szaisztok!
Excel 2003-ban egy cellába több mint 2000 karakterszámú szövetegt írok, de nem látszik a cellában csak fent. Hogy lehet megoldani, hogy látszódjon minden karakter?
-
lappy
őstag
válasz
Vizes Tomi #16408 üzenetére
Szia!
Akkor röviden:
az excel beállítások menüben kiválasztod a testreszabást azon belül is a menüszalagon nem szereplő parancsok.
majd megkeresed az űrlapok ikon és felvétel a gyorselérési eszköztárba.
ezután felveszel mondjuk A1-D1 cellákba űrlapneveket.
majd A2 re álva megnyomod az űrlap vezérlő ikon és lehet bevinni az űrlapokat.
ezeket meg mondjuk a kollegák átküldik neked és te összemásolod vagy egy kis macro azt is elvégzi. -
cellpeti
nagyúr
válasz
Excelbarat #16406 üzenetére
nagyon köszönöm
-
Excelbarat
tag
válasz
cellpeti #16402 üzenetére
Igen ilyen is előfordul de erre meg a következő a megoldás:
A képen bekarikáztam pirossal mit keress! Ha az oszlopválasztó kell akkor a jobb alsó sarokban ha a sor választó akkor a jobb felső sarokban a görgetősáv végén! 2x katt rá és előbukkan a kereszt!
Utána bellít és Ablaktábla rogzitese. -
swatti
tag
Sziasztok,
fura egyedi esettel állok szembe. Bár lehet csak számomra. Egy gépen ami elég erős van raja office 2010. Nagyobb terjedelmű xlsx fájlnál, ami kb. +15MB méretű nagyon sokáig gondolkodik a megnyitáson. A splash ablakban van egy ilyen sor, hogy értekezlet megnyitása 0% és ha ez 100%-ra ugrik, akkor megnyitja, de ez ugye akár 1 percig is eltarthat mire megnyitja. Más gépen amin 2010 van ott simán gyorsan megnyitja vagy egy olyan gépen amin 2007 van szintén. Azon a gépen ahol lassú a megnyitás már nagyon sok dologgal próbálkoztam, de eddig sikertelen az eredmény. Pluginek nincsenek, excel csökkentett módban indítás sem segített. Vírus nincs a gépen és felesleges programok sem mennem. Kérdésem valaki esetleg valami tippe van? Előre is kösz.
-
csferke
senior tag
Sziasztok!
Soook segítséget kaptam már itt a fórumon ezért most közzéteszek egy érdekes megoldást az dátum bevitelre a cellába. A neten bukkantam rá.Az is lehet, hogy ismeritek már. Mindegy, megosztom.
üdvözlettel
-
lappy
őstag
válasz
Vizes Tomi #16401 üzenetére
Szia!
[link]
ezt nézd át űrlapot hogy kell készíteni. -
cellpeti
nagyúr
válasz
Excelbarat #16262 üzenetére
ez ok csak nekem nem jön elő a kereszt mikor a felosztásra megyek, csak az oszlopnál
-
Vizes Tomi
tag
Sziasztok!
Újból feltenném ezt a kérdést.
Azt szeretném megkérdezni, hogy hogyan tudnék olyan olyan munkafüzeteket csinálni (sablont?)
amit oda tudok adni a kollégáknak, azért, hogy heti 1 alkalomma írjanak bele adatot, és elmentsék.
Majd ezek az adatok egy másik táblázatban (adatbázisban) szépen egymás után és/vagy alatt megjelenjenek.
Például :
Dátum m3 elektromos fogy Üóra
2012.01.02 103 54 55
2012.01.07 203 67 78
Túrtam a netet de csak olyan leírást találtam ami az excel 2002, höz jó. A 2007-ben nyomát sem találtam azoknak a funkcióknak a súgótól meg nem lettem, okosabb.
Főleg az érdekelne, hogy most akkor létre kell , hoznom egy űrlapot amit sablonként elmentek, de akkor hogy lesz belőle adatbázis, A neten a 2002 -leírásnál volt olyan, hogy sablon varásló és akkor egy adatbázist is varázsolt mellé. Itt hogy van ez ?
Köszönöm
Sziasztok
Új hozzászólás Aktív témák
- MacBook Pro 16" M3 Pro 36GB 512GB Gar. SPACE BLACK
- Csere-Beszámítás! Macbook Air 15 M2! 8/256 8C+10C. Mint az új! 99% Akkumulátor!
- HP EliteBook 830 G7 i5-10210U 16GB 512GB 1 év garancia
- GYÖNYÖRŰ iPhone 12 mini 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3277, 100% Akkumulátor
- Lenovo ThinkPad X13 G2 multitouch (minimálisan használt)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest