Excel kérdés
Jelentkezz be a hozzászóláshoz.
Köszönöm!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Sajnos nem úgy működik, ahogy szeretném. :(
A listából ki tudom választani a neveket és hozzá is rendeli a többi adatot, de nem tudok újat bevinni, mert hibával leáll.
Illetve a form bezárásakor szeretném kiüríteni a formot, de a névnél itt is hibát jelez.
És a meglévő adatok kiegészítése sem megy.
Ez adja meg az utolsó kitöltött cella sorát az A oszlopban. Ekkor az adatbevitellel felülírod az utolsó sort. Ha új sorba akarsz írni, akkor
sor = Range("A1").End(xlDown).Row + 1
legyen a sor meghatározása.
Ha egy meglévő sor adatait akarod módosítani, akkor ki kell keresned a módosítandó sort egy jellemzője szerint.
sor=Application.WorksheetFunction.Match(Nev, Columns(1),0)
Vigyázat! Itt a sor változó Variant típusú legyen! Ha deklarálod a változókat, akkor Dim sor As Variant, de az As Variant el is hagyható.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Azonban egy új problémával szembesültem. :(
A már bevitt adatok kiegészítésekor új sorba teszi az egészet és megmarad a régi sor is.
Így viszem be az adatokat:
Private Sub Bevitel_Click()
Application.ScreenUpdating = True
Sheets("Nevek").Activate
sor = Range("A1").End(xlDown).Row + 1
Cells(sor, "A") = Nev
Cells(sor, "B") = Telepules
Cells(sor, "C") = Utca
Cells(sor, "D") = Hazszam * 1
Cells(sor, "E") = Nem
Cells(sor, "F") = Eletkor * 1
Cells(sor, "G") = Ruhameret
End Sub
Hogyan tudom megoldani, hogy kiegészítéskor, változtatáskor ne keletkezzen új sor, de ha teljesen új adatsort szeretnék bevinni, az a végére kerüljön? Esetleg mondjuk még az egészet táblát bevitel után abc rendbe tegye?
Előre is köszi a segítséget! :)
Nem lenne egyszerűbb így?
sor = WF.Match(Nev, WSN.Columns(1), 0)
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Hol adod meg a kezd% és a veg% értékét?
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Kis segítséget szeretnék kérni!
Próbálkozom egy egyszerű kis nyilvántartó elkészítésével Excelben. Vezérlőkkel oldottam meg a bevitelt és jól is működik.
Viszont akadt egy kis problémám: szeretném, ha az első adat (név) bevitelekor a comboboxban kiválasztás alapján a már bevitt
adatok is megjelennének, de sajnos nem sikerül összehoznom. Hibát jelez. :(
Private Sub Nev_Change()
Set WSN = Sheets("Nevek")
Set WF = Application.WorksheetFunction
sor = WF.Match(Nev.Value, WF.Range("A" & kezd% & ":A" & veg%), 0) + kezd% - 1
Nev = WSN.Cells(sor, "A")
Telepules = WSN.Cells(sor, "B")
Utca = WSN.Cells(sor, "C")
Hazszam = WSN.Cells(sor, "D")
Nem = WSN.Cells(sor, "E")
Eletkor = WSN.Cells(sor, "F")
Ruhameret = WSN.Cells(sor, "G")
End Sub
Mi lehet a hiba?
Előre is köszönöm a segítséget!
Kijelölöd a cellákat (Shift vagy Ctrl segítségével). Beírod a számot, majd Ctrl+Entert nyomsz.
A kijelölésben legyen benne a fejléces cella is.
Utoljára szerkesztette: Delila1, 2020.06.08. 06:33:38
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Hogy ne kelljen ezerszer ugyan azt beírni ha van ezer cellám .
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
(¯`•.¸¸.•´¯`•.¸¸.•~>
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Az AL47 képlete =HA(AK47>AJ47;AK47-AJ47;24-AJ47+AK47)
Az AL oszlop formátuma: <ó>ó>:pp:mm
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A képletnek ezt írtam be, de nem jó: =HA(((AJ47<AN47;AJ47-INT(AJ47))*24);HA((((AJ47>AN47;AJ47-INT(AJ47))*24)+24);HA((((AJ47>AO47;AJ47-INT(AJ47))*24)+48);HA((((AP47>AN47;AJ47-INT(AJ47))*24)+72);""))))
Mit rontok el? Vagy van esetleg egyszerűbb megoldás?
<ó>ó>:pp:mm
A szögletes zárójelek közé tett órát kiírja.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Egész számot szeretnék elosztani idővel(óra, perc formátum), de SUM-ban nem jó eredményt ad. Milyen képletet kéne használni?
Megpróbáltam az órát perccé alakítani ( =KONVERTÁLÁS(D36;"hr";"mn") ), de szerinte a 6:00:00 óra az 15 perc. Ennél a formátum kódnál: <ó>ó>:pp:mm helyes értéket ad 360:00:00, de ezzel nem tudok továbbra sem számolni. Nem találtam olyan lehetőséget, hogy csupán 360 -at adjon ki.
Továbbra is értetlenül állok a dolog előtt!
Sajnos ez van.
Mindenesetre mindenkinek köszi a segítséget! :)
Adj egy javítást az Office-ra, az valószínűleg rendbe teszi.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Egyébként én is próbáltam már másik gépen szintén 2016-osban és ott is jól működik. Csak az én gépemen nem! :(
Bosszantó, de ez van!
Majd nem az alakzattal indítom.
Range("B" & sor & ":F" & sor).Copy WSA.Range("C" & sor1)
formában is megadhatod a másolást.
Nálam csont nélkül lefut a 2016-os verzióban.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Annyit korrigálnék, hogy nem jelez hibát, de nem is fut végig. Az első adat válogatása és másolása után leáll.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Az alábbi makróról lenne szó!
Sub Masolas()
Dim WSJ As Worksheet, WSS As Worksheet, WSA, sor
Dim usor As Integer, sor1 As Integer, sor2 As Integer, sor3 As Integer, sor4 As Integer, sor5 As Integer, sor6 As Integer
Application.ScreenUpdating = False
Set WSS = Sheets("Alap")
Set WSA = Sheets("Második")
Set WSJ = Sheets("Harmadik")
If WSS.Range("E13") = "" Then
MsgBox "Nincsenek másolható adatok!", vbOKOnly + vbExclamation
Exit Sub
End If
'***************************************************************************
'Előző adatok törlése
WSA.Range("C10:G59, C68:G117, C126:G175, C184:G233, C242:G291, C300:G349") = ""
WSJ.Range("C10:G59, C68:G117, C126:G175, C184:G233, C242:G291, C300:G349") = ""
sor1 = 10: sor2 = 68: sor3 = 126: sor4 = 184: sor5 = 242: sor6 = 300
'***************************************************************************
WSS.Select
usor = Range("E12").End(xlDown).Row
For sor = 10 To usor
Select Case Cells(sor, "G")
Case Range("B6").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor1).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor1).PasteSpecial xlPasteValues
sor1 = sor1 + 1
Case Range("B7").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor2).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor2).PasteSpecial xlPasteValues
sor2 = sor2 + 1
Case Range("B8").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor3).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor3).PasteSpecial xlPasteValues
sor3 = sor3 + 1
Case Range("B9").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor4).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor4).PasteSpecial xlPasteValues
sor4 = sor4 + 1
Case Range("B10").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor5).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor5).PasteSpecial xlPasteValues
sor5 = sor5 + 1
Case Range("B11").Value
Range("B" & sor & ":F" & sor).Copy
WSA.Range("C" & sor6).PasteSpecial xlPasteValues
Range("B" & sor & ":F" & sor).Copy
WSJ.Range("C" & sor6).PasteSpecial xlPasteValues
sor6 = sor6 + 1
End Select
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("E13").Select
End Sub
A lényege az, hogy az egyik lapon vegyesen vannak az adatok (max 6 féle) amelyet másik két lapra válogat és másol át.
A makró elindul, de csak az első elemet másolja át a lapokra, a többit nem.
2007 éa 2010 alatt tökéletesen működött, illetve van még jónéhány másik makró is ugyanebben az Excel fileban, amelyek tökéletesen működnek. Csak ez az egy nem. :(
Előre is köszi!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Elnézést az értetlenkedésért! :)
kiad
Call kiad
A kiad nevű makrot e két módon kérheted, egy makron belül.
régen elég volt csak a makro nevét bekérned, most a régieknél be kell hívni.
Az Élet nem más mint egy hosszú Halál! \"Belül én már rég meg haltam csak a maszkom él.\" - Junkies Nyúljon meg a nyaka bogyokának, s legyen kék a nyelve!
Call makrónév (azaz Call parancs segítségével) nekem így működnek a régi makróim.
Az Élet nem más mint egy hosszú Halál! \"Belül én már rég meg haltam csak a maszkom él.\" - Junkies Nyúljon meg a nyaka bogyokának, s legyen kék a nyelve!
Egy számomra megfejthetetlen, érdekes problémával fordulnék a nálam jóval nagyobb tudással rendelkező "szakikhoz".
Készítettem egy makrót évekkel ezelőtt, 2007-es Excelben. Sokáig használtam, és tökéletesen működött 2007-esben és 2010-esben is. Majd gépcserét követően 2016-os Excel került a gépemre, és ott már nem működik jól. Csak egy része fut le, majd megáll de hibaüzenetet nem küld. Viszont a Visual Basicből indítva hibátlanul fut.
Teljesen értetlenül állok a dolog előtt.
Aki tudja, hogy mi lehet a hiba, az kérem írja meg!
Köszi!
Nagyon szépen köszönöm a segítséget! :)
With fldlg
.Title = "Mentés másként"
.InitialFileName = "neve" & Range("e4") & " " & Range("g4")
.FilterIndex = 2
End With
Egy makró problémám lenne!
Szeretnék egy munkafüzetet makróbarát munkafüzetként elmenteni, de sajnos hiába állítom be, csak sima excel sablonként meni el.
Nem tudtam rájönni, hogy mi a probléma.
Hátha valaki tud segíteni.
Itt a makróm:
Sub Mentés_Másként()
Dim fldlg As FileDialog
Set fldlg = Application.FileDialog(msoFileDialogSaveAs)
With fldlg
.Title = "Mentés másként"
.InitialFileName = "A mentett dokumentum neve" & Range("e4") & " " & Range("g4")
End With
rv = fldlg.Show
If rv Then
ActiveWorkbook.SaveAs fldlg.SelectedItems(1), FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Előre is köszi!
Utoljára szerkesztette: Storey, 2018.07.09. 14:13:20
AL oszlop:
=HA(AJ2="","",AM2-MAX($AM3:AM$22))
AM oszlop (segéd oszlop)
=HA(AJ2="","",SZUM($AK2:AK$21))
A "MAX(AM3:AM22)" tartománynak egyel hosszabbnak kell lennie, mint a bevitt adatoknak (adatok a AM21-ig vannak)
És így nincs "Hiányzik" hiba.

Utoljára szerkesztette: Nekem, 2018.06.28. 20:33:11
=HA(ÜRES(AJ2);"";SZUM(INDIREKT("AK"&SOR()&":AK"&HOL.VAN(INDIREKT("AJ"&SOR())+1;AJ:AJ;0)-1)))
Ezt másold le. Az utolsó egységnél #HIÁNYZIK eredményt kapsz, ezt az egy összesítést "gyalog" add kell megadnod.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Én Google Sheetsben akadtam el. Lehetséges az, hogy egy A1-es cellába írt képlettel megadjam az A2-nek az értékét?
Konkrét példa:
=IF(F3="Done",G3="Not yet received",G3="Waiting for Rec") – nyilván helytelen azzal a G3= résszel.
(Azért nem tudom ezt az egészet a G3-ban megadni, mert legördülő listám van, és az valamiért nem működik együtt a képlettel.)
A célom az lenne, hogy egy teljesen független cellában adom meg ezt a képletet, csak egyszerűen arra nem tudok rájönni, hogy hogyan tudom egy tök random cellából megváltoztatni a G3 értékét. Lehetséges egyáltalán?
Arra keresek megoldást, hogy a lenti képen látható táblázatban batchek láthatóak a bal szélső oszlopban. Egy batch pirossal körbe van keretezve. Minden batchnek szeretném képlettel meghatározni az össz mennyiségét. A batchek mennyisége minden esetben eltérő és 29000 soros a tábla így egyesével rengeteg idő lenne szummmázni. Tehát batch 1 áll 640, 1280, 640, 640, 640 kg-ból amik összege 3840. Ezt szeretném minden egyes batch mellett látni. Tudtok segíteni? Előre is köszönöm.

** ha elfordítod a fejed, könnyebb elhitetni magaddal, hogy nem is tudsz a dologról, és pláne nem vagy felel?s ** "Manapság mindenki vissza akar menni a természetbe. Kár hogy autóval"