- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- Apple iPhone 15 Pro Max - Attack on Titan
- Egyre közelebb a Poco F6 startja
- Mindent megtudtunk az új Nokia 3210-ről
- iPhone topik
- Újabb Samsungok telepíthetik a Galaxy AI-t
- Bemutatkozott a Moto G32 4G
- Nothing Phone 2a - semmi nem drága
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Poco X6 Pro - ötös alá
Hirdetés
-
Mozgásban az F1 24
gp A Forma 1 versenyek rajongói hamarosan végre belevethetik magukat az idei epizódba.
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Mindent megtudtunk az új Nokia 3210-ről
ma Részletes képek, specifikációk és euróban megadott ár is van a legendás modell újraélesztett verziójához.
-
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
-
Delila_1
Topikgazda
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.
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 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?
[ 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.
-
Fferi50
őstag
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.
[ Szerkesztve ]
-
Vladek83
tag
Sziasztok!
Az lehetséges, hogy a listbox minden második sora pl: szürke legyen?
Előre is köszönöm!
-
mh197
senior tag
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? -
mh197
senior tag
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..
-
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
-
Delila_1
Topikgazda
válasz slashing #22612 üzenetére
Range("A:A").Select 'teljes A oszlop
Range("C:D").Select 'teljes C:D oszlop
'C1-től C utolsó kitöltött cella
Range("C1:C" & Range("C" & Rows.Count).End(xlUp).Row).SelectProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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
válasz Delila_1 #22615 üzenetére
Áhh hülye vagyok b1,c1,d1.... filenevek
b2,3,4... akármeddig / c2,3,4 akármeddig és így tovább vannak az adatok
most addig jelöl ki míg a teszt szövegek vannak mivel az A lett meghatározva a Sor-ban de az lenne az igazi ha mindig csak az nézni amit éppen másolni akar
[ Szerkesztve ]
-
Delila_1
Topikgazda
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 SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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)
[ Szerkesztve ]
-
-
Delila_1
Topikgazda
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[ 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.
-
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!
Az igen az nem nem
-
Delila_1
Topikgazda
válasz foregister #22627 üzenetére
Részemről szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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
-
mh197
senior tag
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?
[ Szerkesztve ]
-
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
6 év "lelkes újonc", 4 év "kvázi-tag", 2 év "tag", 1 év "aktív tag", már senior tag. I'm doing my part. ¯\ ʕ•ᴥ•ʔ /¯
-
Delila_1
Topikgazda
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 SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
-
Delila_1
Topikgazda
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 SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
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
Topikgazda
válasz Fferi50 #22641 üzenetére
Behívtam a mentett csv-t, semmiféle vessző nem marad a törölt oszlopokban.
Az eredeti (xls, vagy xlsm) fájlt nem zártam be, nem is mentettem. Ha gondolod, tegyél egy csv bezárást a makró végére.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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értSub 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)
[ Szerkesztve ]
-
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 = vbBlue6 év "lelkes újonc", 4 év "kvázi-tag", 2 év "tag", 1 év "aktív tag", már senior tag. I'm doing my part. ¯\ ʕ•ᴥ•ʔ /¯
-
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 -
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!
[ Szerkesztve ]
-
Fferi50
őstag
Új hozzászólás Aktív témák
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- Apple iPhone 15 Pro Max - Attack on Titan
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- Egyre közelebb a Poco F6 startja
- Fujifilm X
- Mindent megtudtunk az új Nokia 3210-ről
- A fociról könnyedén, egy baráti társaságban
- CASIO órák kedvelők topicja!
- Kertészet, mezőgazdaság topik
- AMD Ryzen 9 / 7 / 5 / 3 3***(X) "Zen 2" (AM4)
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest