-
Fototrend
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
-
Oly
senior tag
válasz perfag #10199 üzenetére
Köszi
Meg is csináltam:
Dim biztos As String
biztos = MsgBox("Létrehozzuk a CSV file-t?", vbQuestion + vbYesNo, "Megerősítés")
If biztos = vbNo Then GoTo vege
If Len(Dir(Cells(7, 26))) = 0 Then GoTo dirmakego
GoTo csvmakego
dirmakego:
Dim dirmake As String
dirmake = MsgBox("A megadott elérési útvonal (" & Cells(7, 26) & ") nem létezik. Létrehozzuk most?", vbQuestion + vbYesNo, "Hiba")
If dirmake = vbNo Then GoTo vege
MkDir Cells(7, 26)
MsgBox "A " & Cells(7, 26) & " mappa létrehozva."
csvmakego:
Dim FNV$
Dim FN$
filego:
FNV$ = InputBox("Kérem a fájl nevét!", "Fájl neve")
FN$ = Cells(7, 26) & Format(Now(), "mmdd") & FNV$ & ".csv"
If Len(Dir(FN$)) = 0 Then GoTo nincsilyen
Dim felulir As String
felulir = MsgBox("A file (" & FN$ & ") már létezik! Felülírjuk?", vbQuestion + vbYesNo, "Megerősítés")
If felulir = vbNo Then GoTo filego
nincsilyen:
Application.DisplayAlerts = False
Sheets("table").Select
Sheets("table").Copy
ActiveWorkbook.SaveAs Filename:=FN$, FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True
ActiveWindow.Close
Sheets("make").Select
Range("A11").Select
If Err.Number <> 0 Then
MsgBox "Akkor fuss neki újra! :)"
Else
MsgBox "A file lértehozva: " & FN$, vbInformation, "Sikeresen létrehozva"
End If
vege:
End SubSonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S
-
Pityke78
őstag
válasz m.zmrzlina #10184 üzenetére
Nem, nincsen semmilyen makró a excle file-ban. Sőt ha nem jól működik a Ctrl+s parancs és bezárom, majd újraindítom, akkor általában már a mentést csinálja és nem mást.
Egyéb ötlet? -
félisten
Annyit had javasoljak, hogy a Goto utasítást csak akkor használd, ha nincs más. A strukturált nyelvek esetén a Goto 99%-ban nem szükséges.
If Len(Dir(Cells(7, 26))) = 0 Then GoTo dirmakego
GoTo csvmakegoEgy ilyen szerkezet, minden vizsgán (bármely strukturált nyelvről is legyen szó) elégtelen... (a többiről a kódodban nem is beszélve)
(És hidd el, nem elfogultságból mondom, mivel kb 6 évet Assembly-ben dolgoztam, ott meg csak ugró utasítások vannak)Javaslom nézz utána az If...Else...EndIf struktúrának, mert szörnyen használod jelenleg...
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
perfag
aktív tag
válasz Fire/SOUL/CD #10204 üzenetére
Oly: Én is csatlakoznék egy megjegyzéssel. Valószínűleg azért van, mert Pascalban tanultam programozni, én mindig úgy tudtam, hogy a változók deklarálása az alprogram elején történik. Most megnéztem az Excel VBA Súgót is, a Dim-nél ez áll:
Note:
When you use the Dim statement in a procedure, you generally put the Dim statement at the beginning of the procedure.
Szóval nem kötelező ... de az áttekinthetőség érdekében érdemes lenne betartanod.[ Szerkesztve ]
-
félisten
válasz perfag #10205 üzenetére
VB-nek ez sajátossága, hogy bárholdeklarálható egy változó, de ez igazából C/C++-ra is igaz, ráadásul pl egy már deklarált tömb méretét is újra lehet deklarálni a későbbiekben(REDIM). Persze azzal egyetértek, hogy a deklarációkat célszerű a kód elején megtenni.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
atiska007
senior tag
Sziasztok!
Egy kis cheat-re lenne szükségem.
Adott egy excel file, amiben van VB kód, command button stb.
A file 2006.ban készül: tulajdonságok->Részletek->tartalom létrehozása.
Ezt a tartalom létrehozása időt hogyan tudom átállítani, mondjuk a mai napra???
Póbáltam, hogy kimásoltam mindent és beillesztettem egy új file-ba, de a dátum maradt 2006Help pls!
Mittudomain!
-
félisten
-
atiska007
senior tag
válasz Fire/SOUL/CD #10208 üzenetére
Sajnos ez a mentési módszer nem írja felül a Tartalom létrehozása dátumot
Mittudomain!
-
m.zmrzlina
senior tag
válasz DopeBob #10197 üzenetére
Nyilván te is észrevetted, hogy a #10200-ban lévő képlet elég könnyen hibázik.Pl ha a megnevezés két szóból áll és szóköz van közte, vagy ha előfordul benne a "db"karaktersorozat.
Ennek kiküszöbölésére nyiss a VB szerkesztőben egy új modult és másold bele ezt:
Function CSAKSZAM(szoveg As String)
Dim szam As String, i As Integer
szam = ""
For i = 1 To Len(szoveg)
If Asc(Mid(szoveg, i, 1)) <= 58 And Asc(Mid(szoveg, i, 1)) >= 47 Then
szam = szam & Mid(szoveg, i, 1)
End If
Next i
CSAKSZAM = szam
End FunctionEttől lesz egy CSAKSZAM() nevű új függvényed amit nagyon könnyen tudsz használni a következőképpen:
Ha az ÉRTÉK() fv-be beágyazod ahogyan a képen van akkor számolni is tudsz a darabszámokkal.
-
Delila_1
Topikgazda
válasz m.zmrzlina #10210 üzenetére
Jó ötlet!
Ennyit egyszerűsítenék rajta a feltételnél:
If IsNumeric(Mid(szoveg, i, 1)) Thenés a végén a biztonság kedvéért:
CSAKSZAM = szam*1Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
m.zmrzlina
senior tag
válasz Delila_1 #10211 üzenetére
Jó ötlet!
Köszönöm!Ennyit egyszerűsítenék rajta a feltételnél:
If IsNumeric(Mid(szoveg, i, 1)) Then
Pedig ezzel a sorral küzdöttem a legtöbbetés a végén a biztonság kedvéért:
CSAKSZAM = szam*1
Igen, és akkor nem kell az ÉRTÉK()-be ágyazni ahhoz, hogy számolni lehessen vele. -
fi:zi'k
nagyúr
Sziasztok,
Újra ide tévedtem.
Az alábbi képlethez kérnék segítséget:
=HA(E19<>"";(E19*D19)*0,9;"-")
Ez a P19-es cellában szerepel, és azt kellene megoldani, hogy a kapott eredmény egész legyen. Pontosabban, ha később használom, akkor egészként kezelje. Ezt ha jól sejtem a KEREKÍTÉS fgv-nyel lehet megoldani, bár lehet tévedek.
A lényeg, hogy nem boldogulok.Köszi!
[ Szerkesztve ]
96.5% MORE WUB-WUB ◄◄|►► Hirdetéseim: https://goo.gl/khUC1Y ◄◄
-
m.zmrzlina
senior tag
válasz fi:zi'k #10213 üzenetére
Ha az "egészként kezelje" azt jelenti hogy az eredményednek a kerekítés szabályai szerint kell viselkednie akkor a következő egy lehetséges megoldás:
=HA(HIBÁS(KEREKÍTÉS(HA(E19<>"";(E19*D19)*0,9;"-");0));"-";KEREKÍTÉS((E19*D19)*0,9;0))
Ha elég simán elhagyni az eredményből a tizedesvessző utáni részt akkor kicsit egyszerűbb a képlet:
=HA(HIBÁS(INT(HA(E19<>"";(E19*D19)*0,9;"-")));"-";INT((E19*D19)*0,9))
A HA(HIBÁS())-ra azért van szükség mert a KEREKÍTÉS() és az INT() #ÉRTÉK hibát adna E19="" esetben. Gondolom ez előfordulhat hiszen az eredeti képleted kezeli ezt a lehetőséget.
-
Delila_1
Topikgazda
válasz fi:zi'k #10213 üzenetére
=HA(ÉS(E19<>"";SZÁM(E19));INT(E19*D19*0,9);"-")
vagy
=HA(ÉS(E19<>"";SZÁM(E19));KEREKÍTÉS(E19*D19*0,9;0);"-")Nincs szükség a szorzásnál a zárójelekre, anélkül is ugyanaz az eredmény.
[ 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.
-
vamzi
őstag
Sziasztok!
Itt egy minta excel, [link]
Ebben akarom azt megoldani, hogy a piros oszlopba szeretném megszámolni azokat a mezőket, ahol egyezik a "Hasznos oszlop" és a komment nem üres.
Már több féle varriációt próbáltam, de nem ment
Előre is köszönöm.
-
Delila_1
Topikgazda
A B3 cellába: {=SZUM((E$3:E$17=A3)*(D$3:D$17>1))}
Ezt úgy tudod létrehozni, hogy beírod a =SZUM((E$3:E$17=A3)*(D$3$17>1)) képletet, és Shift+Ctrl+Enterrel viszed be. Utána már másolhatod az alatta lévő cellákba.
Szerk: a lófogú vigyori figura kettőspont és D betű akar lenni, de ha konvertálatlanra veszem, nem ad félkövér formátumot.
[ 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
Akkor valamit elszúrtál. Kipróbáltam, 2007-ben és 2003-ban egyformán jól működik.
Most nézem, hogy nem is Microsoft Excelt használsz, legalábbis a kép szerint valami más. Open Office?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
vamzi
őstag
válasz Delila_1 #10220 üzenetére
Nem képet adtam, hanem gugli doksiként megosztottam a táblát. 2007-es excelt használok. A kis táblán amit adtam azon szépen működik, de sajna a nagy 25.000 soros táblán nem nagyon akarja azt kiírni amit én elvárok tőle. A nagy táblában viszont a "Hasznos oszlop"ban nem csak számok vannak, hanem betűk is pl: F.01930465.01
Ez nem zavarhatja be a működését?
-
Delila_1
Topikgazda
A nem számokkal is jól kell működnie, kipróbáltam.
A tartomány végén a 17-et átírtad az utolsó sorod számára? Nem maradtak ki a $ jelek?
Annyit módosíthatsz, hogy a képletben a >1 -et átírod >"" -re, és Ctrl+Shift+Enterrel viszed be újra, majd lemásolod.
[ 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.
-
vamzi
őstag
válasz Delila_1 #10223 üzenetére
Egyelőre lehet hogy az volt a baja, hogy az egyik táblán számként szerepel a hasznos oszlopban lévő érték, a másikon meg szövegként. Most ráeresztettem kicsit egy konvertálást, de ezzel már nagyon szöszöl, majd befejezi A lényeg, hogy ennek működnie kell akkor a betűkre is. Köszönöm szépen!
-
Delila_1
Topikgazda
-
Geryson
addikt
Sziasztok!
Egy furcsa kérdés. Feltételesen szeretnék formázni egy részt, de valami miatt az O2>0 szöveget idézőjelek közé teszi és nem is alkalmazza. Ha meg törlöm, akkor azt mondja, hogy a képlet hibás. Mi a teendőm?
Bocsánat, csak megoldotta, de látom, hogy a cellahivatkozást $-al kell bevinnem, jól látom?
[ Szerkesztve ]
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
félisten
válasz Geryson #10226 üzenetére
Nem tudom milyen módon hoztad létre a szabályt, de inkább így csináld: O2 cellán állva
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
őstag
Üdvözletem Mindenkinek!
Szeretnék segítséget kérni, mert nehézkesen megy a VBA a makrón belül, és kezdek megőrülni!
A fenti ábra bal oldala a problémás, jobb oldali a kívánt állapot.
Természetesen nem csak 10-12 sorból áll az Exceles táblázatom, hanem több száz sorból.
Azt szeretném elérni, hogy minden sorban ellenőrizze le az 1. oszlop egy sorát a 2. oszlop ugyanazon szintjével. Azaz:
HA A2 = C2
következő sort ellenőrizze,
ELSE
vizsgálja meg, hogy A10 = C10+C11 (egy számot csak két részre lehet bontani, többre nem).
Ha a két összeg egyenlő lesz A10-zel, akkor C10-be írja A10-es értékét, a C11-es helyére pedig 1 sorral csúsztassa fel az oszlop összes elemét.Ha a két összeg nem egyenlő, álljon le a vizsgálat egy hibaüzenettel.
Remélem jól el tudtam magyarázni.
Köszönöm szépen előre annak, aki tud nekem segíteni benne! Addig is nem adom fel, próbálkozom.
Ha válaszolok / írok az üzenetedre, elvárom a választ. Egy minimális kommunikációs etikettet tartsunk be, még akkor is, ha nem érdekel az ajánlat.
-
Delila_1
Topikgazda
válasz Bluesummers #10228 üzenetére
Sub Csusztat()
Dim sor%
sor% = 2
Do While Cells(sor, 1) <> ""
If Cells(sor%, 3) + Cells(sor% + 1, 3) = Cells(sor%, 1) And Cells(sor% + 1, 3) > "" Then
Cells(sor%, 3).Delete Shift:=xlUp
Cells(sor%, 3) = Cells(sor%, 1)
End If
sor% = sor% + 1
Loop
End SubA Cells(sor% + 1, 3) > "" feltétel azért kell, mert a példád szerinti C10 cellát törölve az utolsó érték (17. sor) mindkét oszlopban 22, és ebben az esetben az A17=C17+C18, tehát ezt a C22 cellát is törölné.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
ql0qxo
csendes tag
Sziasztok!
Hogy tudnám megoldani ha egy táblázatban van 2 ugyanolyan adat, hogy az egyiket hagyja csak bent?
Köszönöm.
-
Delila_1
Topikgazda
válasz ql0qxo #10230 üzenetére
Ehhez egy kicsit többet kellene tudni a táblázatodról. Pl. hogy hol van a táblázat, melyik oszlopban, vagy sorban fordulhatnak elő duplán az adatok, és hogy a többször szereplő adatok celláját is törölni kell-e (mint a 10228-as kérdésben), vagy csak üresre kell állítani a cellát.
Legegyszerűbb, ha beteszel egy képet.
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 ql0qxo #10232 üzenetére
Ahhoz, hogy a C oszlopban össze tudja hasonlítani a makró az adatokat, a C oszlop szerint kell rendezni a táblázatot. Ha ez nem felel meg, az első üres oszlopba tegyél sorszámot a makró futtatása előtt: az első adat mellé beírsz egy 1-est, és a Ctrl bill. lenyomása mellett lehúzod.
A makró után a sorszámos oszlop szerint visszaállíthatod az eredeti sorrendet.Sub NukuEgyforma()
Dim sor%, usor%
Cells(1).Select 'Rendezés C oszlop szerint
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
usor% = Range("A10000").End(xlUp).Row
For sor% = usor% To 2 Step -1
If Cells(sor%, 3) = Cells(sor% - 1, 3) Then Rows(sor%).Delete Shift:=xlUp
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.
-
fi:zi'k
nagyúr
#10215-14
Köszönöm mindkettőtöknek!
A zárójel véletlenül maradt benne.96.5% MORE WUB-WUB ◄◄|►► Hirdetéseim: https://goo.gl/khUC1Y ◄◄
-
ql0qxo
csendes tag
-
ql0qxo
csendes tag
De sajnos a kb 4000 adatból csak 10 hagyott...
-
Delila_1
Topikgazda
válasz ql0qxo #10240 üzenetére
Küldd el a 4000 soros fájlt, mert valami nem stimmel, ha csak 10 maradt.
Nálam jól működött.Lehet, hogy nem a C oszlopban voltak a kigyomlálandó adatok, mint a képen.
[ 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
-
őstag
válasz Delila_1 #10229 üzenetére
Még egyszer nagyon szépen köszönöm a segítséged!
Így utólag az ember a fejét fogja, hogy ez tök logikus, de ehhez a nyelvezetet ismerni kell nagyon. Nekem a logika tetszik benne a legjobban.K Ö S Z Ö N Ö M S Z É P E N !
Ha válaszolok / írok az üzenetedre, elvárom a választ. Egy minimális kommunikációs etikettet tartsunk be, még akkor is, ha nem érdekel az ajánlat.
-
Delila_1
Topikgazda
válasz Bluesummers #10243 üzenetére
Nagyon szívesen, máskor is, csak ennél nehezebb feladatot ne adj.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Kloden
senior tag
Sziasztok, azt szeretném kérdezni, hogy hogyan lehet megcsinálni azt hogy az első 2 sor mindig látszódjon? A táblázat fejlécéről van szó.
"Ön fél a haláltól?" "Az élettől félek."
-
Kloden
senior tag
válasz m.zmrzlina #10246 üzenetére
Hálás köszönetem, siker!!
Gondoltam hogy nem lehet valami bonyolult dolog, de így, hogy még a nevét sem tudtam a funkciónak...[ Szerkesztve ]
"Ön fél a haláltól?" "Az élettől félek."
-
Mauzes
őstag
Sziasztok!
Az miért van, hogy ha megnyitok egy excel-fájl, majd gyorsan bezárom (pl. látom, hogy nem ez kell nekem), akkor a Win kiírja, hogy sajnáljuk, az excel működése leáll, és lassan, szarakodva zárja csak be. Vagy akár fagyogat is tőle a gép elég rendesen.
Ha hagyok egy kis időt a bezárás előtt, akkor nincs ilyen gond...
-
Geryson
addikt
válasz Fire/SOUL/CD #10227 üzenetére
Köszönöm, megoldottam!
Most próbálom Delila Al-és főkategóriás javaslatát az érvényesítésnél. Kemény lesz...
Apropó, miért kell kell a szabályoknál "$" jel az oszlopbetű elé? Konkrétan nem is megy a feltételes formázás másképp (egészen pontosan meg, de nem az egész sort színezi be, hanem csak az első oszlopot - mire erre rájöttem besötétedett).
Itt egy példa: =ÉS($A2>0;$F2<=MA();$G2="";DARAB2($A2:$F2)=6)
Ha nincs ott a dollár a DARAB2 zárójele között, megbolondul. De miért kell dollár? Nem értem itt az abszolút hivatkozás értelmét.
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
Új hozzászólás Aktív témák
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Vírusirtó, Antivirus VPN kulcsok
- World of Warcraft Shadowlands Collectors edition EU EN
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.