-
GAMEPOD.hu
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 Des1gnR #4961 üzenetére
A cellaformázásnál az egyéni kategóriában adhatod meg, pl.:
# ##0" cm"
A számot tartalmazó rész lehet másmilyen is, a cm előtt legyen egy szóköz, ezzel együtt tedd idézőjelek közé.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Cuci3
tag
válasz Des1gnR #4978 üzenetére
Megoldás 1:
Kell egy oszlopot készítened, ami a dátumból kiszedi a hónapot (praktikusan hónap függvény). Azután már mehet a SZUMHA valahogy így:
SZUMHA($C$5:$C$X;"="&E5;$D$5:$D$X)Magyarázat:
B oszlop - rendes dátumok
C oszlop - hónapok
D oszlop - összeadandó értékek
X - felsorolás vége
E5 - ide mondjuk be van írva, hogy 5 vagy 6 (a hónapok sorszáma). Ha a képlet mondjuk F5-ben van, és E oszlopba be vannak írva 1-től 12-ig a hónapok, akkor könnyen le lehet húzni.Megoldás 2:
Ismét kell egy hónapos oszlop, meg az oszlopknak valami név, aztán kimutatásba betenni az egészet és két kattal megvan a lehetésges hónapokra az összesítés. Persze itt adatváltozás esetére kell egy adatfrissítés. -
toth_janika
őstag
válasz Des1gnR #5001 üzenetére
Thx! Ez az!
Lenne még egy kérdésem:
Adott egy ilyen táblázat:Mérnök 11800
Vezető 250000
Titkár 1125
Mérnök 16540
Takarító 800A feladat az lenne, hogy csak a Mérnökök fizetését adja össze, és írja ki!
Ezzel is szenvedtem már annyit, de nem tudok rájönni, pedig tuti egyszerű![ Szerkesztve ]
Flickr - http://www.flickr.com/photos/toth_janos/
-
veterán
válasz Des1gnR #23228 üzenetére
egy for ciklussal végigszambázol az első munkalap cikkszámain, a match fv-t használva. ha megtalálja a második munkalapon a kijelölt range-ben a cikkszámot, akkor nem történik semmi, ha nem, akkor pedig az első üres sorba beilleszti az adatait+megnöveli a range méretét is, amiben keresel. én így csinálnám
"a jövötsajnos nemlehet tudni csakhamárotvagy deakormegmár azajelen"
-
m.zmrzlina
senior tag
válasz Des1gnR #23231 üzenetére
Szerintem az If Err.Number = 91 Then sornál kellene keresgélni.
Tedd be a sor elé ezt: Debug.Print Err.Number és léptesd a makrót F8-cal és figyeld mit ír az Immediate ablakban a második körben.
Illetve még egy kérdés. Miért kell az új tétel beírása után a K11-be lépni?
[ Szerkesztve ]
-
m.zmrzlina
senior tag
válasz Des1gnR #23235 üzenetére
Na jó de azzal, hogy kijelölöd azzal még semmit nem oldottál meg. Ennek a cellának az értékét át kellene adni a lastRow változónak. Pl: lastRow = Range("K11").Value.
Én mondjuk nem a Selection.Find-dal csinálnám ezt, hanem az Application.Worksheetfunction.Countif-fel. Magyarul a Darabteli() fv makrós megfelelőjével. Végigmennék az új lista cikkszámain (aminek részhalmaza a régi cikkszám lista - gondolom) és az új listának azt az elemét amin a CountIf nullát ad vissza azt hozzáadnám a régi listához
[ Szerkesztve ]
-
Fferi50
őstag
válasz Des1gnR #23231 üzenetére
Szia!
A bajt az ide
" Range("K11").Select
End
endif"
beszúrt end parancs okozza, mert ez véget vet a program futásának azonnali hatállyal.
Ezt kellene kivenned és akkor nem áll le az első találatnál.Egyébként pedig:
Nem kell a selection, és nem kell activálni sem a megtalált értéket.
Próbáld így:For i = 2 To sheets("pm_nk_arlista_uj").usedrange.rows.count
set ujszam= Sheets("pm_nk_arlista_uj").UsedRange.columns(1).Find(What:=Sheets("pm_nk_arlista_uj").Cells(i, 1).Value, LookIn:=xlvalues, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False)
if not ujszam is nothing then
Sheets("pm_nk_arlista").Cells(lastRow + 1, 1).Value = Sheets("pm_nk_arlista_uj").Cells(i, 1).Value
Sheets("pm_nk_arlista").Cells(lastRow + 1, 2).Value = Sheets("pm_nk_arlista_uj").Cells(i, 2).Value
Sheets("pm_nk_arlista").Cells(lastRow + 1, 3).Value = Sheets("pm_nk_arlista_uj").Cells(i, 3).Value
Sheets("pm_nk_arlista").Cells(lastRow + 1, 4).Value = Sheets("pm_nk_arlista_uj").Cells(i, 4).Value
Sheets("pm_nk_arlista").Cells(lastRow + 1, 5).Value = Sheets("pm_nk_arlista_uj").Cells(i, 5).Value
Sheets("pm_nk_arlista").Cells(lastRow + 1, 9).Value = Sheets("pm_nk_arlista").Cells(2, 9).Value
lastrow=lastrow+1
End If
Next i
Üdv.[ Szerkesztve ]
-
Fferi50
őstag
válasz Des1gnR #23242 üzenetére
Szia!
Most látom, hogy egy kicsit "fordítva ültem a lóra".
Ezt a sort:
if not ujszam is nothing thencseréld ki erre lsz:
if ujszam is nothing thenMivel ez jelenti azt, hogy nem találta meg az új cikkszámot a régi listában.
Elnézést, hogy elnéztem, nem volt szándékos.
De az end parancs az egyértelmű futás megszakítást jelent, ezért lépett ki az első találat után.Üdv.
-
m.zmrzlina
senior tag
válasz Des1gnR #23244 üzenetére
Csak az elv:
Sub lista_frisit()
Range("B1").Select
Do While ActiveCell.Value <> ""
If Application.WorksheetFunction.CountIf(Range("A:A"), ActiveCell) = 0 Then
Range("A" & (Range("A" & Rows.Count).End(xlUp).Row) + 1) = ActiveCell.Value
End If
ActiveCell.Offset(1, 0).Select
Loop
End SubNálam A1 ben kezdődik a szűkebb B1-ben a bővebb lista.
Természetesen a saját munkalapodra kell faragnod. Ha teszel be képet róla tudjuk pontosítani.[ Szerkesztve ]
-
Fferi50
őstag
válasz Des1gnR #23244 üzenetére
Szia!
Tényleg nagyon figyelmetlen vagyok, hiszen rossz helyen kerestetem:
set ujszam= Sheets("pm_nk_arlista_uj").UsedRange.columns(1).Find(What:=Sheets("pm_nk_arlista_uj").Cells(i, 1).Value, LookIn:=xlvalues, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False)
helyett:
set ujszam= Sheets("pm_nk_arlista").UsedRange.columns(1).Find(What:=Sheets("pm_nk_arlista_uj").Cells(i, 1).Value, LookIn:=xlvalues, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False)Remélem, több elnézésem már nem lesz benne.....
Üdv.
-
slashing
senior tag
válasz Des1gnR #23292 üzenetére
két fájl egymás mellett külön ablakban az egyikben számok pl. A1:A10 mondjuk csupa 1-es ezt kijelölöd akkor a státuszsorban kiírja ezeknek az átlagát az összegét és hogy hány cella van kijelölve de csak addig míg át nem kattintasz a másik fájlra vagy munkafüzetre mert akkor már az lesz aktív és nem mutatja az előbbi adatokat lent...
[ Szerkesztve ]
-
Louro
őstag
válasz Des1gnR #26169 üzenetére
Ha jól értem transzponálni szeretnél?
Pl.:
Élelmiszer_____________Élelmiszer
Édesség______________Édesség
Belvita jóreggelt________Orbit eper
Nettó ár______________Nettó árVagy
Élelmiszer______Édesség_____Belvita_____Nettó ár
Élelmiszer______Édesség_____Orbit_______Nettó ár(Az alsóvonások csak az olvashatóság miatt vannak )
Ha minden termék 4 adatból áll, akkor szerencsések vagyunk, mert ciklussal gyorsan feldolgozhatóak. Csak a kérdés, hogy a fentiből melyik kell.
Ha a 2., akkor
Sub darabolo()
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
For i = 1 To LastRow Step 5
For j = 0 To 3
'Vegye ki az első négy sort és illessze be pár oszloppal odébb.
Cells(i + j, 1).Select
Selection.Copy
Cells(i, 3 + j).PasteSpecial xlPasteValues
Next
'Az elválasztó sor miatt ugrok 5-öt.
Next
End SubMess with the best / Die like the rest
-
hhheni
tag
válasz Des1gnR #26169 üzenetére
ha nem szereted a reguláris kifejezéseket, akkor lökd be wordbe:
csere 2 db enter -> "duplaenter"
csere enter -> vessző (vagy pontosvessző)
csere "duplaenter" -> enter
és már lehet is importálni
ha a "sorvégeken" nem enter van, hanem pl. shift-enter, akkor értelemszerűen arra végzed el a cseréket
ha az árával számolni is szeretnél, akkor érdemes az importáláskor a :-ot is megadnod határolójelként -
hhheni
tag
válasz Des1gnR #26222 üzenetére
1. a csere panelban keresett szöveg ^p^p
(vagy: egyebek -> speciális -> bekezdésjel 2*)
csere erre: én "duplaenter"-t írtam, de bármit odaírhatsz (pl. Des1gnR), ami nem szerepel az eredeti szövegben
az összes cseréje2. a csere panelban keresett szöveg ^p
(vagy: egyebek -> speciális -> bekezdésjel)
csere erre: , (tehát ,-re)
az összes cseréje3. a csere panelban keresett szöveg Des1gnR
csere erre: ^p
(vagy: egyebek -> speciális -> bekezdésjel)
az összes cseréjeha ez kész, akkor mehet az excelbe, adatok -> szövegből oszlopok, és itt állíthatod be a határolójelet
menni fog, sok sikert!
-
Des1gnR
őstag
válasz Des1gnR #26893 üzenetére
A baj az volt, hogy nem tároltam a cookie-t bejelentkezés után és így nem is továbbítottam a letöltéshez.
Itt a teljes kód:Sub FileDownload()
Dim strCookie As String, strResponse As String, _
strUrl As String
FilePath = "A fájl letöltési útvonala. Pl.:C:\Users\Attila\Documents\arlista.csv"
'
Dim xobj As Object
'
Set xobj = CreateObject("WinHTTP.WinHTTPrequest.5.1")
'
strUrl = "[B]Az url ahol bejelentkezel az oldalra...[/B]"
xobj.Open "POST", strUrl, False
xobj.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
xobj.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xobj.Send "A POST data, amit pl. HTTP Live Headerre tudsz kiolvasni."
'
strCookie = xobj.GetResponseHeader("Set-Cookie")
strResponse = xobj.ResponseText
'
' now try to get confidential contents:
'
strUrl = "Ide jön a fájl elérési útja..."
xobj.Open "GET", strUrl, False
'
' these 2 instructions are determining:
'
xobj.SetRequestHeader "Connection", "keep-alive"
xobj.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
'
xobj.SetRequestHeader "Cookie", strCookie
xobj.Send
'
'strCookie = xobj.GetResponseHeader("Set-Cookie")
strResponse = xobj.ResponseText
'Save the file
FileNum = FreeFile
Open FilePath For Binary Access Write As #FileNum
Put #FileNum, 1, strResponse
Close #FileNum
MsgBox "File has been saved!", vbInformation, "Success"
End Sub[ Szerkesztve ]
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
Des1gnR
őstag
válasz Des1gnR #26914 üzenetére
Ezt visszaalakítva számmá, már tényleg azt kapom amit kell, dzsír
Itt a kód, amivel a meg sem nyitott CSV-ben kicserélem a pontot vesszővé.
Sub CSVFormaz()
Dim MyPath As String
Dim MyFile As String
Dim Wkb As Workbook
Dim Cnt As Long
Application.ScreenUpdating = False
MyPath = "C:\Users\Public\Documents\" 'change the path accordingly
If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
MyFile = Dir(MyPath & "arlista_temp.csv")
Cnt = 0
Do While Len(MyFile) > 0
Cnt = Cnt + 1
Set Wkb = Workbooks.Open(MyPath & MyFile)
Wkb.Worksheets("sheet_arlista_temp").Select
Columns("C:C").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Wkb.Close savechanges:=True
MyFile = Dir
Loop
If Cnt > 0 Then
MsgBox "Completed...", vbExclamation
Else
MsgBox "No files were found!", vbExclamation
End If
Application.ScreenUpdating = True
End SubDell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
Fferi50
őstag
válasz Des1gnR #26915 üzenetére
Szia!
Szerintem ennél egyszerűbben is megy a dolog:
A beállításoknál a speciális - szerkesztés részen a rendszerbeállítások szerint checkboxból kiveszed a pipát és beállítod a tizedesjelet pontra.
Ezután megnyitod a csv fájlt.
Majd utána visszateszed a pipát a rendszerbeállítások szerint checkboxba.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Des1gnR #26915 üzenetére
Szia!
" a meg sem nyitott CSV-ben kicserélem a pontot vesszővé"
Ez szerinted mit csinál, ha nem a fájlt nyitja meg?
"Set Wkb = Workbooks.Open(MyPath & MyFile)"
Ráadásul "Wkb.Close savechanges:=True" be is zárod (nyilván, különben hogy érvényesülne a módosítás)!Üdv.
[ Szerkesztve ]
-
Louro
őstag
válasz Des1gnR #27020 üzenetére
Első körben megnézném, hogy átírva 0-ra és 1-re is ugyanazt csinálja -e. Ha igen, akkor más a bibi. Ha nem, akkor a + és a - jelekkel lesz gondja. Hmm, nekem működik. Most gyorsan kipróbáltam.
Akkor második körben azt nézném meg, hogy az egész tábla egy új munkafüzetbe...néha fura, de megold dolgokat új excelbe átmásolva.
(#27023) dejak: Esetleg jobb klikk kép formázása alatt nincs opció, hogy margót állíts? Én erre gyanakszom. Esetleg, mint wordben, hogy a celláktól függetlenül "lebegjen"?
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz Des1gnR #27028 üzenetére
Oh, régen nekem is így "tanították', hogy a 0-val kezdődő számot akartam cellába írni, írjak elé egy aposztrófot.
Oszlopot kijelölve, egy csere és jó lett gondolom. Pedig mintha erre is gyanakodtam volna.
Szóközök és az aposztrófok nagy ellenségeink
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz Des1gnR #27030 üzenetére
Hmmm, meglestem aposztrófosan is egy dummy táblán és akkor is szűrt nekem.
Ha lehet szerintem érdemes lenne 10-15 sort kikapni a táblázatból. Szenzitív adatokat kitörölni és feltölteni valahová. Talán segíthetne, ha látnánk. Kezd érdekelni a megoldás
Mess with the best / Die like the rest
-
Delila_1
Topikgazda
válasz Des1gnR #27028 üzenetére
Vegyél fel egy új oszlopot egy függvénnyel =ha(a1="+";1;0). ezt végig másolod, majd a teljes oszlopot másolod, és az eredeti helyére irányította, értékként beilleszted. A beillesztett oszlop már szám formátumú lesz, és szűrheted.
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 Des1gnR #27030 üzenetére
Szia!
Sajnos az aposztrof ebben az esetben formázási jel, amit nem tudsz így kicserélni.
Javaslatom: Jelölj ki egy normál formázású oszlopot, utána másolás - ráállsz az"aposztrofos" oszlopra - irányított beillesztés - formázás.Ezzel szerintem eltűnnek az aposztrofok.
Üdv.
-
Fferi50
őstag
válasz Des1gnR #30090 üzenetére
Szia!
40.000k sor nem sok egy kicsit?
Én azt tenném, hogy lemásolnám a munkalapot (jobb egérgomb a fülön, áthelyezés vagy másolás - legyen másolat) egy új füzetbe (gondolom a tábla alatt munkalapot értesz), majd a másolatból kitörölném azt az 50 oszlopot, amire nincs szükségem.
Üdv.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen