Hirdetés
- Magga: PLEX: multimédia az egész lakásban
- Sonarr és Radarr
- enginev3.0: Torrent autodl beállítás
- Meggyi001: Több tucat Eiffel torony??? ... Igen, gyere mutatom, hogy hol...
- bambano: A sor végén
- Hieronymus: Kalózkodás. Kalózkodás? hozzászólás
- GoodSpeed: Ennél jobb Windows 7 Aero Skin nem igen van Windows 11-re (WindowBlinds 11)
- Pötyi: 4. RETRO KONZOL ÉS SZÁMÍTÓGÉP BÖRZE - '25. november 16.
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Kalózkodás. Kalózkodás?
-
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
-
slashing
senior tag
ez a keres és csere nekem is komoly fejtörést okozott múlt héten. Nekem egy pontokat használó ezredes elválasztást kellett vesszőre cserélnem és ha manuálisan csináltam akkor jól végezte a dolgát de amint macroval akartam csinálni ugyan azt már szövegként került a cellába és írta is hogy szám van ott de szövegként formázva. A megoldás meg az lett hogy a pontot PONTRA cseréltem macróval és úgy lett belőle vessző, ne is kérdezzétek ennek az okát. De mire ezt kiderítettem
hál istennek másnak is előfordult ez a jelenség csak ő fordítva akarta.De most kipróbáltam ezzel a chrw-vel és úgy sem lett jó...

-
D@reeo
aktív tag
Üdv
Adott egy táblázat, de a matematikai függvények nem működnek, mert minden sor végén van egy enter. Hogy tudom a táblákból kitörölni a felesleges sorvégi entereket?
Példa: https://www.dropbox.com/s/9be2c67kotiph97/excel.xlsxA keresés és csere menüben nincs "speciális" lehetősségem, próbáltam \n-nel és \r-rel is de úgy se ment. Köszi
-
slashing
senior tag
válasz
kacsaesokos
#22694
üzenetére
szerk.: .....
=HA(HIBÁS(HOL.VAN(B1;$A:$A;0));B1;"") C oszlopba
A oszlop a 270-es a B a 370-es C-ben mutatja azokat amik nincsenek nincsenek az A-ban
-
kacsaesokos
tag
Sziasztok
Excelben 2 oszlopot akarok összehasonlítani, az egyik oszlop 270e másik kb 370e tétel, úgy szeretném, hogy megmutassa melyek azok a tételek amik nincsenek benne a 270e-es oszlopban, és azt kihozza egy 3. oszlopban
-
Oly
őstag
válasz
Delila_1
#22692
üzenetére
Szia
Valóban kimaradt, már pótoltam.

Az ASCII sem ment. Excelben és a forráskódban is Alt+0213-mal írtam be, de nem ismeri fel.
de kis guglizás után ezzel sikerült:
Function MAGYARIT(cella As String)
cella = Replace(cella, "é", "e")
cella = Replace(cella, "á", "a")
cella = Replace(cella, ChrW(369), "u")
cella = Replace(cella, ChrW(337), "o")
cella = Replace(cella, "ú", "u")
cella = Replace(cella, "ö", "o")
cella = Replace(cella, "ü", "u")
cella = Replace(cella, "ó", "o")
cella = Replace(cella, "í", "i")
cella = Replace(cella, "É", "E")
cella = Replace(cella, "Á", "A")
cella = Replace(cella, "Ú", "U")
cella = Replace(cella, ChrW(336), "O")
cella = Replace(cella, ChrW(368), "U")
cella = Replace(cella, "Ö", "O")
cella = Replace(cella, "Ü", "U")
cella = Replace(cella, "Ó", "O")
cella = Replace(cella, "Í", "I")
MAGYARIT = cella
End Function -
Oly
őstag
Most már csak a kalapos betűk szívatnak.:
Function MAGYARIT(cella As String)
cella = Replace(cella, "é", "e")
cella = Replace(cella, "á", "a")
cella = Replace(cella, "ű", "u")
cella = Replace(cella, "ő", "o")
cella = Replace(cella, "ú", "u")
cella = Replace(cella, "ö", "o")
cella = Replace(cella, "ü", "u")
cella = Replace(cella, "ó", "o")
cella = Replace(cella, "É", "E")
cella = Replace(cella, "Á", "A")
cella = Replace(cella, "Ű", "U")
cella = Replace(cella, "Ő", "O")
cella = Replace(cella, "Ú", "U")
cella = Replace(cella, "Ö", "O")
cella = Replace(cella, "Ü", "U")
cella = Replace(cella, "Ó", "O")
MAGYARIT = cella
End FunctionHa beírom az Ű és Ő betűt, akkor a hullámos vagy kalapos ékezet kerül oda a VBA editorban.
Ezzel lehet kezdeni valamit? -
Oly
őstag
válasz
Delila_1
#21707
üzenetére
Szia
Én ezzel indultam el:
=HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(A5;"é";"e");"á";"a");"ő";"o");"ű";"u");"ú";"u");"ö";"o");"ü";"u");"ó";"o")
De ugyanezt még a nagybetűkre is meg kell csinálni.
Gondoltam, csinálok egy egyéni fügvényt rá, de elakadtam az elején.
Milyen parancsot használhatok rá?Köszi
-
Fferi50
Topikgazda
válasz
Gabcsika
#22685
üzenetére
Szia!
Nos, ha az A1-be írod az értéket, akkor miért a B2 cella értékét vizsgálod a feltételekben?
Másrészt a képlet (most B2-vel) =HA(B2<50;840;HA(B2<100;560;HA(B2<150;280;HA(B2<200;0;""))))
mivel az előző ha már kiváltja a kisebb vizsgálatot, elég a következőnél a felső határt nézni.
Üdv.
-
Gabcsika
tag
Sziasztok!
Van egy olyan feltétel halmazom, hogy
Valaki beír egy tetszőleges pozitív egész számot mondjuk A1-be.
Mondjuk C5 cellába írja ki, hogyha az A1-be írt érték 50-nél kisebb, 840
ha 50 és 100 között van van, akkor 560
ha 100 és 150 között, akkor 280
ha 150 és 200 között, akkor 0Ez így nem akaródzik:
=HA(B2<50;840;HA(B2>50<100;560;HA(B2>100<150;280;HA(B2>150<200;0;""))))
Köszi!
-
Delila_1
veterán
válasz
paatrick
#22670
üzenetére
A sorbeszúrásra nem tudok jó választ, legfeljebb azt, hogy ne laphoz rendelt makrót alkalmazz, hanem gombnyomásra változzanak a színek.
Az egyes színeket az RGB kódjukkal is megadhatjuk. Pl.
Range("A1").Interior.Color = RGB(0, 204, 255) Ez egy vil. kék.
RGB(255, 0, 0) piros
RGB(255, 255, 0) sárga
RGB(0, 255, 0) vil. zöld
RGB(255, 0, 255) lila
RGB(128, 0, 0) barnaBármilyen színt kikeverhetsz a 3 összetevőből, 0 és 255 között.
Makró, ami a C oszlopban lévő adatokat vizsgálja, és színezi a tartalmuknak megfelelően:
Sub Szinezes()
Dim ter As Range, CV As Object
Set ter = Range("C1:C" & Range("C1").End(xlDown).Row) 'Itt kell átírni a 3 C betűt
For Each CV In ter
Select Case CV
Case "K"
Range(CV.Address).Interior.Color = RGB(0, 204, 255)
Case "P"
Range(CV.Address).Interior.Color = RGB(255, 0, 0)
Case "Z"
Range(CV.Address).Interior.Color = RGB(0, 255, 0)
Case "S"
Range(CV.Address).Interior.Color = RGB(255, 255, 0)
Case "B"
Range(CV.Address).Interior.Color = RGB(128, 0, 0)
Case "L"
Range(CV.Address).Interior.Color = RGB(255, 0, 255)
End Select
Next
End SubAlt +F11-gyel bemész a VB szerkesztőbe. Bal oldalon kiválasztod a füzeted nevét. Insert menü, Module.
Jobb oldalon nagy üres felületet kapsz, oda másold be, az előző, laphoz rendelt makrót töröld ki.Lépj vissza a füzetedbe. Legegyszerűbb, ha pl. egy lekerekített téglalapot szúrsz be. Jobb klikk, makró hozzárendelése, Szinezes.
-
Delila_1
veterán
válasz
Bobrooney
#22673
üzenetére
Az Fkeres függvény kell ide.
Az A oszlopban vannak a pontszámok, az I-ben a "tól" értékek (0; 11; 21; stb.), mellettük a J-ben az osztályzat (1; 2; 3; stb.)A képlet =FKERES(A1;I:J;2;1)
Az utolsó paraméter, az 1-es – ami el is hagyható – mondja meg a függvénynek, hogy nem pontos-, hanem közelítő értéket keresel. -
slashing
senior tag
válasz
slashing
#22675
üzenetére
ez kell majd neked szerintem: gyakoriság youtube
-
slashing
senior tag
válasz
Bobrooney
#22673
üzenetére
huh most hirtelen nem jut eszembe a pontos menete de ha utánna nézel a gyakoriság vagy norm.eloszl függvénynek. Vagy az egyiknek vagy a másiknak tuti jónak kell lennie de lehet kombinálni kell a kettőt.
Inkább csak a gyakoriság lesz az a norm.eloszlást csak azért jutott eszembe mert akkor kellett használnom mikor a gyakoriságot is.
-
Bobrooney
senior tag
Sziasztok!
Hogy lehet megcsinálni azt, hogy ha egy szám benne van egy intervallumban akkor adja ki hozzá az "eredményt"
mint pl, egy osztályzatnál, csak nekem több ilyen intervallumos kiválasztásom lesz?
0-10-ig 1-es
11-20-ig 2-es
21-30-ig 3-as stb...Makrót ha lehet most mellőzném, annyit lehet, hogy egy másik munkalapra beszúrom ezeket a számokat.
Köszönöm előre is a segítséget!

-
paatrick
őstag
válasz
Delila_1
#22664
üzenetére
Oké, így már jól jelenik meg. Köszönöm.
Azonban felmerült egy probléma, ha egy új sort akarok beszúrni akkor mindig kidob egy hibát:
Microsoft Visual Basic
Run-time error '13':
Type mismatch
End, Debug, Help lehetőségekkel. Ha az End-re kattintok beszúrja a sort végül, a Debugnál a Case "K"-t jelöli meg.
Ki lehet kapcsolni, vagy ki lehet javítani valahogy?
-
maugly
csendes tag
válasz
Delila_1
#22634
üzenetére
Nnna, eddig tartottam, teljesen belekavarodtam. Tejfog..

Próbálom a dátum formátumát belőni úgy, hogy ne kelljen használnom a Windows területi és nyelvi beállításait az általam kívánt yyyy-mm-dd alak eléréséhez az exportált csv-ben.
Volt egypár verzióm, egy része nem hozza a kívánt eredményt, más részét helytelen szintaktikával, vagy esetleg nem létező belső függvények miatt rontom el.
A változók megadása után próbáltam ezt a kettőt, a végeredményen nem látszik:
Columns("D:E").NumberFormat = "yyyy-mm-dd;@"Columns("D:E") = Format$(Date, "yyyy-mm-dd")
Aztán próbáltam a cikluson belül formázni. Google barátom találatai alapján próbálkoztam egy TEXT függvénnyel, amire azt mondta a Visual Basic, hogy szerinte ilyen nincs.
Próbálkoztam egy ilyennel, ezzel sem értem el a célt:
For oszlop = 1 To 6
If (oszlop = 4) Or (oszlop = 5) Then
formaz = ""
formaz = Format&(Cells(sor, oszlop), "yyyy-mm-dd")
uj = uj & formaz & "|"
Else: uj = uj & Cells(sor, oszlop) & "|"
End IfTuti van egy pofonegyszerű megoldás, de már nem látom az erdőmtől azt az egy fát.

-
Delila_1
veterán
válasz
cellpeti
#22657
üzenetére
Valószínű, hogy a számjegyeket tartalmazó oszlop nem szám-, vagy általános, hanem szöveg formátumú.
Könnyen számmá alakíthatod az oszlopodat. Egy üres cellába beírsz egy 1-est, Ctrl+c-vel másolod. Kijelölöd az átalakítandó tartományt. Jobb klikk, irányított beillesztés, Szorzás. Ezután az 1-est törölheted. A rendezés jó lesz.
-
paatrick
őstag
Sziasztok,
újra itt vagyok a cellaszínezős problémával. Minden működik, csak annyit szeretnék még tudni hogy ha más színt akarok beállítani akkor azt hogy? Mert jelenleg a Green-re a brutál neonzöldet adja be.
találtam egy ilyet amiben benne vannak a színek.
[link]A probléma az hogy csak az alap 8 színt ismeri fel névről.
Szóval próbáltam:
Case "Z"
Range(Target.Address).Interior.Color = vbLime / Color 43 / [Color 43] variációkat de ezzel nem működik.Ugyanígy kékre a Sky Blue / Color 33 variációk se működtek.
Ezeknél mit kell beírni hogy felismerje a színt?
-
Gabcsika
tag
Sziasztok!
Hogy kell, hogy olyan sorozatot előállítani, hogy az elemei mindig ugyanannyival nőjenek?
Tehát mittóm én van számsor, hogy 2, 5, 8, 11...és a képlet mindig 3-mal növeli az utolsó cella értékét (ameddig húzom az egeret, számol).Köszi!
-
Vladek83
tag
Delila_1, Fferi50: Köszönöm mindkettőtök segítségét. Meglesem és kipróbálom majd.
Üdv.
-
Delila_1
veterán
válasz
Delila_1
#22653
üzenetére
Kicsit cifrázva:
A listbox tulajdonságainál a ColumnHeads legyen True.Cells(1,"AA")="Sorszám"
Cells(1,"AB")=Filename
Cells(loopcount+1, "AA")=loopcount
Cells(loopcount+1, "AB")=Filename
Sheets("Munka1").ListBox1.ListFillRange = "Munka1!AA2: AB" & loopcount+1
Sheets("Munka1").ListBox1.Visible = True -
Delila_1
veterán
válasz
slashing
#22648
üzenetére
A vezérlők eszköztárából kiteszel a lapra egy listboxot. Tervező üzemmódban a tulajdonságoknál a ColumnCount-ot 2-re állítod (két oszlopot mutasson), a Visible-t pedig False-ra.
A makródban a státuszsor kiíratása után beteszed a sorszámot és a fájlnevet, mondjuk az AA és AB oszlopokba.
Cells(loopcount, "AA")=loopcount
Cells(loopcount, "AB")=FilenameKiíratás:
Sheets("Munka1").ListBox1.ListFillRange = "Munka1!AA1: AB" & loopcount
Sheets("Munka1").ListBox1.Visible = True -
Delila_1
veterán
válasz
Vladek83
#22649
üzenetére
Kicsit többet kellene tudni a dologról.
Feltételezem, hogy a megjelenítendő adatok egy tartományban vannak, és a tartomány mérete változó. Legyen ez pl. a Z oszlopban, Z1-től valameddig.
Nevet adsz a tartománynak, legyen a név a példában Név (nagyon szellemes, igaz?). A forráshoz az ofszet (2010-től eltolás) függvénnyel add meg a az adatokat.
=ofszet($z$1;0;0;darab2($z:$z);1)Ha címsor van a Z1-ben, akkor
=ofszet($z$1;0;0;darab2($z:$z)-1;1)A combobox rowsource értéke: lapnév!Név
-
Fferi50
Topikgazda
válasz
Vladek83
#22649
üzenetére
Szia!
Mit szeretnél?
Ha a combobox listáját szeretnéd frissíteni, azt a rowsource tulajdonság átírásával tudod.
combobox1.rowsource="Munka1!A1:A5"
Ha változik a forrás akkor az egyenlőségjel után az új forrástartomány címét írod.
A forrás átírását ahhoz az eseményhez kell rendelned, amelyik megváltoztatja (frissíti) az adatokat.Üdv.
-
Fferi50
Topikgazda
-
Vladek83
tag
Sziasztok!
Tudna valaki súgni, hogy hogyan tudnék frissíteni egy Combobox vezérlőt (adatok frissítése)?
Már guglizok egy ideje, de egyenlőre negatív...Előre is köszönöm!
-
slashing
senior tag
Mivel lehetne helyettesíteni az msgbox-ot? Nem elég az 1024 karakter amit kiíratnék vele. A lenti törlős makró megszámolja hányszor futott le és kiírja hogy hány fájl lett törölve majd kiírja egymás alá a fájlneveket.
Sub DeletTxtFiles()
Dim Filename, Pathname As String, ASN As String, loopcount As Integer, nevek As String
ASN = ActiveSheet.Name
Pathname = "q:\SPC 2010-2012-2013\Bosch\TXT\" & ASN & "\"
Filename = Dir(Pathname & "*.txt")
loopcount = 0
Do While Filename <> ""
nevek = Pathname & Filename & vbNewLine + nevek
loopcount = loopcount + 1
Application.StatusBar = " Türelem, dolgozom! A használatban lévő fájl: " & Pathname & Filename
Kill Pathname & Filename
Filename = Dir
Loop
MsgBox " Az alábbi " & loopcount & " fájl törlésre került:" & vbNewLine & vbNewLine & nevek
Application.StatusBar = ""
End Sub -
paatrick
őstag
válasz
Delila_1
#22638
üzenetére
Elnézést de csak az excel felszínét kapargatom.

Szóval nem tudom mi az a "laphoz rendelt makró", képhez már rendeltem hozzá egy autoszűrő nullázót de ennyi.
Egyébként 3 szín is elég, ha a másik megoldás egyszerűbb.Ha kérhetem szájbarágósabban

K-tól AG celláig kéne vizsgálni, gondolom akkor ez így néz ki
Case "K"
Range(K-AG).Interior.Color = vbBlue -
slashing
senior tag
Miért nem találja a fájlt?
A kill sornál áll meg file not found-al de nem értem miért
Sub DeletTxtFiles()
Dim Filename, Pathname As String, ASN As String
ASN = ActiveSheet.Name
Pathname = "q:\SPC 2010-2012-2013\Bosch\TXT\" & ASN & "\"
Filename = Dir(Pathname & "*.txt")
Do While Filename <> ""
Kill "q:\SPC 2010-2012-2013\Bosch\Gyártott termékek\txt\" & Filename
Filename = Dir
Loop
End Sub(excel 2013)
-
Fferi50
Topikgazda
válasz
Delila_1
#22635
üzenetére
Szia!
Semmi gond.
Viszont a Clearcontents helyett a Delete kell, mert különben odatesz a végére néhány vesszőt (mert a usedrange-ban benne vannak azok a cellák is és értékük üres).
A végén még be is kellene zárni a CSV fájlt, az eredetit pedig nem szabad menteni.Én ennél egy kicsit - na jó sokkal - bonyolultabban képzeltem el a megoldást.
Üdv.
-
Delila_1
veterán
Nem lehet, a 2003-asban max 3 feltétel adható meg.
Helyette egy, a laphoz rendelt makróval megoldható.
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "K"
Range(Target.Address).Interior.Color = vbBlue
Case "P"
Range(Target.Address).Interior.Color = vbRed
Case "S"
Range(Target.Address).Interior.Color = vbYellow
Case "Z"
Range(Target.Address).Interior.Color = vbGreen
End Select
End Sub -
Fferi50
Topikgazda
-
Delila_1
veterán
válasz
maugly
#22630
üzenetére
A két csillagozott sornál a saját útvonaladat, ill. a saját fájlod nevét (amilyen néven menteni akarod) írd be.
Az uj = uj & Cells(sor, oszlop) & "@" sorban a @ helyére a saját elválasztó karakteredet add meg.Sub CSV()
Dim sor As Long, usor As Long, uj As String
Dim oszlop As Integer, utvonal As String, FN As String
utvonal = "E:\Adatok\" '*****************
FN = "MentesNeve.csv" '*****************
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = 1 To usor
For oszlop = 1 To 6
uj = uj & Cells(sor, oszlop) & "@"
Next
Cells(sor, "A") = Left(uj, Len(uj) - 1)
uj = ""
Next
Columns("B:F").ClearContents
Application.DisplayAlerts = False
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=utvonal & FN, _
FileFormat:=xlCSV
Application.DisplayAlerts = True
End Sub -
paatrick
őstag
Sziasztok,
úgy látom nekem sokkal egyszerűbb problémám van mint itt sokaknak

Azt szeretném ha egy cellába beírok egy betűt akkor változzon meg a cella színe amibe beírtam.
Pl:
K - kék lesz a cella
P - piros
S - sárga
Z - zöldExcel 2003-at használok
tudom régi de ebben még számomra a hasznosabb autoszűrő van, és a tetején se foglal el sok helyet a menü.Remélem nem bonyolult a megoldás, a segítséget előre is köszönöm

-
mh197
őstag
Sziasztok!
Újabb probléma lépett fel sajnos..

Van az alábbi makróm:
Private Sub Workbook_Open()
MsgBox "Üdvözlöm a feladat nyilvántartás osztályos kimutatásában!"
ActiveSheet.Protect Password:="A", UserInterfaceOnly:=True, AllowFiltering:=True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Protect Password:="A", UserInterfaceOnly:=True, AllowFiltering:=True
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
If SaveAsUI Then
MsgBox "A 'mentés másként' funkció NEM HASZNÁLHATÓ!!!"
MsgBox "A táblázat NEM KERÜLT MENTÉSRE! Mentse ISMÉT a 'mentés' gombbal!!!", vbInformation
Cancel = True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Biztosan be akarja zárni az osztályos kimutatást ?", 36, "Confirm") = vbNo Then
Cancel = True
End If
End SubAz a lényeg, hogy van egy excel (osztályos kimutatás), amiben több más excel hivatkozva van. Az alábbi sor azért került be, hogy ha rányomok a mentésre, akkor frissítse be az osztályos kimutatásban a behivatkozott cellák adatait.
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
Amikor azonban megvan nyitva az osztályos kimutatás, és esetleg valamelyik hivatkozott excel fájl is egy időben, akkor az alábbi hibaüzenetet kapom:
Valószínűsítem, hogy az a gond, hogy az aktív munkafüzetben próbál frissíteni a makró, és ezért jön a hiba, de ez csak sejtés.. Esetleg tud valaki segíteni, mit kellene átírni, hogy ne adjon vissza hibát, ha a hivatkozott excel fájl, és az osztályos kimutatás is meg van nyitva egyszerre?
-
akyyy
senior tag
van egy dbf kiterjesztésű fjlom, amit az excel meg tud nyitni. a gondom az hogy nincs a fájl hozzá társítva. Hiába próbálom windowsba, a listába nincs benne az excel.
Manuálisan megkereshetném a telepített excel helyét és kiválasztom, de az a gondom hogy 15-ös excel van agépen (legújabb) és fene se tudja hogy hol van ez a fájl

-
Delila_1
veterán
válasz
foregister
#22627
üzenetére
Részemről szívesen.

-
foregister
tag
válasz
Delila_1
#22602
üzenetére
Delila: Ez a VB script lett a megoldás végül (kis módosítás után). Nagyon szépen köszönöm!
Fferi: neked is köszönöm a segítséget, de valamiért nem sikerült úgy átültetnem a formulát a munkás excelbe, hogy ne #ÉRTÉKET-et adjon vissza. Azért vicces, mert szinte minden megegyezik csak adtam hozzá plusz oszlopokat kb. még 10-et.
A lényeg, hogy megoldódott, bár amennyit szívtam vele, manuálisan is megoldhatta volna, de legalább tanultam megint valamit excelben

Mind a kettőtöknek hálával tartozom!
-
Delila_1
veterán
válasz
slashing
#22623
üzenetére
Ímé:
Sub masol()
Dim oszlop As Integer, usor As Long, Uoszlop As Integer, FN As String
Uoszlop = Cells(4, Columns.Count).End(xlToLeft).Column
For oszlop = 2 To Uoszlop
FN = Cells(4, oszlop) & ".xls"
usor = Cells(4, oszlop).End(xlDown).Row
Range(Cells(5, oszlop), Cells(usor, oszlop)).Copy
Workbooks.Open "C:\adatokki\" & FN
Sheets("Data Entry").Activate
usor = Range("D" & Rows.Count).End(xlUp).Row + 1
If usor < 12 Then usor = 12
Range("D" & usor).PasteSpecial xlPasteAll
ActiveWorkbook.Save
ActiveWorkbook.Close
Next
End Sub -
slashing
senior tag
válasz
Delila_1
#22620
üzenetére
Istenigazából a végének nem is így kéne lennie de csak ebben voltam biztos hogy jó és le fog futni.
A véglegesben ennek úgy kéne mennie hogy a kiinduló lapon a D4,E4,F4 ben vannak a fájlnevek alattuk az adatok. Nem új fájlt kéné készíteni hanem azt megnyitni ami a D4-ben van és a megnyitott fájl D oszlopának mindig az első üres cellájába másolná át az adatokat hogy ne írja felül a már benne lévőket.
De azt hiszem feladom. A házépítést sem a tetőnél kezdik szóval nekem sem mindjárt a sűrűjével kéne. Veled meg nem akarom még ezt is megíratni.
(pedig a Pascal nyelv tök jól ment a suliban de most nem áll rá az agyam erre a VBA-ra)
-
Delila_1
veterán
válasz
slashing
#22616
üzenetére
Nem próbáltam ki!
Sub masol()
Dim O As Integer, usor As Long, oszlop As Integer, FN As String
oszlop = Cells(1, Columns.Count).End(xlToLeft).Column
For O = 2 To oszlop
FN = Cells(1, O) & ".xlsx"
usor = Cells(1, O).End(xlDown).Row
Range(Cells(2, O), Cells(usor, O)).Copy
Workbooks.Add
Range("A1").PasteSpecial
ActiveWorkbook.SaveAs Filename:="C:\adatokki\" & FN
ActiveWorkbook.Close
Next
End Sub -
slashing
senior tag
-
slashing
senior tag
válasz
Delila_1
#22613
üzenetére
Nah megpróbáltam beilleszteni ahogy írtad lefut szépen csak egy a bajom hogy addig jelöl ki amíg az A oszlopban adatok vannak. Az A oszlop az tök lényegtelen számomra mindig csak azt az oszlopot kéne nézni ahonnan akar másolni. Az első sorban B2-től vannak a kimenő fájlok nevei file1 file2 ....
alattuk az adatok.Sub adatokkimentese()
Dim sor, oszlop As Integer
Sheets("teszt").Select
sor = Range("A" & Rows.Count).End(xlUp).Row
oszlop = Cells(1, Columns.Count).End(xlToLeft).Column
For Each cell In Range(Cells(1, "B"), Cells(1, oszlop))
Range(Cells(2, cell.Column), Cells(sor, cell.Column)).Copy
Workbooks.Add
Range("A1").PasteSpecial
ActiveWorkbook.SaveAs Filename:= _
"C:\adatokki\" & cell.Value & ".xlsx"
ActiveWorkbook.Close
Next cell
Application.CutCopyMode = False
End Sub -
slashing
senior tag
Ha így akarok kijelöletni egy oszlopban akkor a ? helyére hogyan adom meg hogy a teljes oszlopot jelölje ki vagy azt hogy amíg adatok vannak benne? az utóbbi jobb lenne de lényegtelen egyenlőre csak jussak tovább valahogy
Range(Cells(2, cell.Column), ?????.Copy
-
mh197
őstag
válasz
Fferi50
#22609
üzenetére
Szia!
Ez sajnos nem oldja meg a gondot..
Amit meg akarok csinálni: Van két excel fájl a gépen. A fájl egyik cellája sima hivatkozással behivatkozza B fájl azonos cellájának tartalmát. Ha bezárom a B fájlt (A marad nyitva), és B fáljt kimásolom egy másik könyvtárba és ott megnyitom, módosítom B fájlban a hivatkozott cella tartalmát, majd ment és bezár, és visszamásolom ezt az eredeti B fájl helyére, majd ezt követően megnyitom megnézem az A fájlt-t, akkor nem látom benne a B-ben így módosított adatot. Csak akkor fogom látni, ha az adatok->hivatkozások menüpontban megnyíló ablakon a frissítésre nyomok.
Ez ok is lenne, de ha ráteszem A -ra a lapvédelmet, akkor a frissítés gomb inaktív lesz...Megoldás esetleg?
Próbáltam az általad javasoltat, de nem frissíti sajnos úgy..

-
mh197
őstag
válasz
Fferi50
#22576
üzenetére
Köszönöm, ezt elkezdem megírni, remélem menni fog.

Kezdő vagyok még nagyon excel makróban, de amikor időm van olvasom itt a hozzászólásokat, mert sok hasznos infó van benne.
Amire eddig még nem leltem rá:
Lehetséges egy füzetvédelemmel és lapvédelemmel ellátott excel munkafüzetben a csatolásokat frissíttetni makróval? Arra gondolok, hogy pl mikor rányomok a mentés gombra, akkor frissítse be a csatolásokat is. Amikor a lapvédelmet ráteszem, akkor az "adatok->hivatkozások" ablakban látható "Frissítés" gomb inaktív lesz.
Gondolom ehhez a frissítéshez a makrónak hozzá kell férnie a laphoz, amit a Delila_1 által már ajánlott sor megoldana.ActiveSheet.Protect Password:="hűdetitkosjelszó", UserInterfaceOnly:=True
De hogy tudom a csatolt adatokat ezután frissíttetni vele? Olyan makró, ami ugyanazt csinálná, mint amit az "adatok->hivatkozások" ablakban látható "Frissítés" gomb.
Azért lenne ez fontos, mert megnyitáskor ugyan befrissíti az egyéb excel fájlokból csatolt adatokat, de utána nem. Ha a csatolásban hivatkozott fájl egy hálózati mappában van megosztva, és a fájlba beírok valamit egy másik gépről, akkor amibe becsatoltam, csak akkor válik ez az adat láthatóvá, ha újra megnyitom az excel fájlt. Ezért lenne jó egy olyan makró, ami pl a mentés gombra kattintással ugyanazt csinálná, mint amit a megnyitáskor elvégzett csatolások frissítés.
Létezik ilyen?
-
Vladek83
tag
Sziasztok!
Az lehetséges, hogy a listbox minden második sora pl: szürke legyen?
Előre is köszönöm!
-
Fferi50
Topikgazda
válasz
foregister
#22599
üzenetére
Szia!
Hát igen, így jár aki siet.
A képletet idézőjelek nélkül kell beírnod és akkor működik!
Nem is értem, miért írtam az idézőjeleket (talán azért, mert a makróban meg kellenek....)
Viszont az excel tud két irányban keresni, két hol.van (egyik a sorra, másik az oszlopra) együttes alkalmazásával az index függvényben.
Üdv és bocs.
-
Delila_1
veterán
válasz
foregister
#22599
üzenetére
Egy függvény az azonosítóidhoz:
Function Azonosito(cella As String)
Dim lel, sor As Long
Set lel = Range("F:J").Find(cella, LookIn:=xlValues)
If lel Is Nothing Then
Azonosito = "Nincs ilyen"
Else
sor = lel.Row
Azonosito = Range("F" & sor)
End If
End FunctionUgye tudod, mit kezdj vele?
-
Delila_1
veterán
válasz
foregister
#22599
üzenetére
Az első megoldás is jó, csak a lapod hibás. Én is fejre álltam előbb, de azt hittem, csak a letöltésnél volt hiba.
Ilyen hibás lapok olykor előfordulnak az Excelben.Tedd egy új lapra az A és az F:J tartományt, majd vidd be újra a képletet.
Kár, hogy nem előbb írtad ezt a kötőjeles eltérést, mert közben írtam egy függvényt az első szám kinyeréséhez.

Új hozzászólás Aktív témák
- Vivo X200 Pro - a kétszázát!
- iPhone topik
- Megvásárolható a Vivo X300 és X300 Pro Magyarországon, íme a hivatalos árak
- Magga: PLEX: multimédia az egész lakásban
- Milyen billentyűzetet vegyek?
- Kormányok / autós szimulátorok topikja
- AMD Navi Radeon™ RX 9xxx sorozat
- Bittorrent topik
- Apple asztali gépek
- Sonarr és Radarr
- További aktív témák...
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- HP Z8 G4 Workstation (gamer célra is) dupla CPU Xeon Gold 6134
- Gombászkönyvek egyben
- GYÖNYÖRŰ iPhone 12 Pro 128GB Graphite-1 ÉV GARANCIA - Kártyafüggetlen, MS3669
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest



![;]](http://cdn.rios.hu/dl/s/v1.gif)











Köszi

