Excel segítség!
#1121
Elküldve: 2012. 06. 23. 08:37
D3 Battle Tag: PoHoS#2375
#1122
Elküldve: 2012. 06. 24. 07:33
#1123
Elküldve: 2012. 07. 04. 20:11
Segítségeteket szeretném kérni excel megnyitással kapcsolatban.
Amikor asztalról megnyitok egy már elmentett exceltáblát, akkor mindig rányit egy teljesen üres excel munkafüzetet is.
Valami megsérülhetett az xlstartnál, vagy egyéb probléma lehet?
Az üres munkafüzet "Munkafüzet1" néven nyílik meg.
Köszönettel,
Pancsa
#1124
Elküldve: 2012. 08. 01. 15:41
Próbáltam makrórögzítővel produkálni egy kódot, de ez a lekérdezés létrehozását nem "dokumentálja", csak egy módosító szakaszt szolgáltat. Azt amit az alábbi kódban az
Idézet
'Átalakítási próbálkozás........
'************************
alatt láthatsz
Próbáltam ezzel a makróval, ugyanolyan paraméterekkel létre hozni a lekérdezést:
Dim qt As QueryTable
sqlstring = "SELECT distinct Forint_Adatok.ElszamNap, Forint_Adatok.Ellszam, Forint_Adatok.Forint_kod, Forint_Adatok.Osszeg1, Forint_Adatok.Osszeg2, " & _
"Forint_Adatok.Megjegyzes" & Chr(13) & "" & Chr(10) & "FROM Forint_ELL.dbo.Forint_Adatok Forint_Adatok" & Chr(13) & "" & Chr(10) & _
"WHERE (Forint_Adatok.ElszamNap>={ts '2012-06-01 00:00:00'} And Forint_Adatok.ElszamNap<={ts '2012-06-30 00:00:00'})" & _
"ORDER BY Forint_Adatok.Ellszam, Forint_Adatok.ElszamNap, Forint_Adatok.Forint_kod"
connstring = Array( _
"OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=101.101.101.111;Use Procedure for Prepare=1;Au" _
, _
"to Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible" _
, "=False;Initial Catalog=Forint_ELL")
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring)
.Refresh
End With
With ActiveWorkbook.Connections(1)
.Name = "10.101.48.113 Forint_ELL Forint_Adatok"
.Description = ""
End With
'************************
'Átalakítási próbálkozás........
'************************
With ActiveWorkbook.Connections("10.101.48.113 Forint_ELL Forint_Adatok"). _
OLEDBConnection
.BackgroundQuery = False
.CommandText = Array( _
"SELECT distinct Forint_Adatok.ElszamNap, Forint_Adatok.Ellszam, Forint_Adatok.Forint_kod, Forint_Adatok.Osszeg1, Forint_Adatok.Osszeg" _
, _
"2, Forint_Adatok.Megjegyzes" & Chr(13) & "" & Chr(10) & "FROM Forint_ELL.dbo.Forint_Adatok Forint_Adatok" & Chr(13) & "" & Chr(10) & "WHERE (Forint_Adatok.ElszamNap>={ts '2012-06-01 00:0" _
, _
"0:00'} And Forint_Adatok.ElszamNap<={ts '2012-06-30 00:00:00'}) ORDER BY Forint_Adatok.Ellszam, Forint_Adatok.ElszamNap, NE" _
, "R_Adatok.Forint_kod")
.CommandType = xlCmdTable
.Connection = Array( _
"OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=10.101.48.113;Use Procedure for Prepare=1;Au" _
, _
"to Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible" _
, "=False;Initial Catalog=Forint_ELL")
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
'Alább kommentelt sorok hibáznak, pedig makrórögzítő írta.
' .ServerFillColor = False
' .ServerFontStyle = False
' .ServerNumberFormat = False
' .ServerTextColor = False
End With
Az a baj ezzel, ha utólag formázom a táblázatot, akkor elcseszi a frissítési lehetőségeket, a lekérdezést.
Azaz, nem lesz frissíthető többé a táblázat.
Hogy a túróba lehet olyan táblát csinálni makróval, mint amilyen az a manuális lekérdezés esetén lesz?
#1125
Elküldve: 2012. 08. 14. 12:07
A net tele van sokféle példával, de nekem egyik sem jó, amit meg én agyaltam ki, az nem akar működni.
Szóval így kellene szűrni:
első 4 karaktere egyenlő vagy nagyobb mint "1000" és kisebb mint "2000" ill. egyenlő vagy nagyobb mint "4500" és kisebb mint "4700".
#1127
Elküldve: 2012. 08. 16. 13:29
Idézet: hkpk - Dátum: 2012. 08. 14. 13:07
A net tele van sokféle példával, de nekem egyik sem jó, amit meg én agyaltam ki, az nem akar működni.
Szóval így kellene szűrni:
első 4 karaktere egyenlő vagy nagyobb mint "1000" és kisebb mint "2000" ill. egyenlő vagy nagyobb mint "4500" és kisebb mint "4700".
Nos, válaszolok:
Az autoszűrő ilyent nem tud (AND és OR kombinálva). De lemakróztam más módon....
#1128
Elküldve: 2012. 09. 06. 09:14
Adott egy (folyamatosan bővülő) táblázat, amelyben bizonyos szempont miatt a B oszlopban szereplő szöveges információt pirosra színezem /betűszín piros/.
A munka végén kell egy kigyűjtés egy másik munkafüzetlapon, ahol csak azok a sorok kellenének, ahol NEM piros a B oszlop betűszíne..
Hogyan lehet egyszerűen automatizálni, hogy azok a sorok törlődjenek, ahol piros színű a B oszlopban lévő infó?
Szerkesztette: 0564 2012. 09. 06. 09:21 -kor
#1129
Elküldve: 2012. 09. 06. 10:35
Idézet: 0564 - Dátum: 2012. 09. 06. 09:14
Adott egy (folyamatosan bővülő) táblázat, amelyben bizonyos szempont miatt a B oszlopban szereplő szöveges információt pirosra színezem /betűszín piros/.
A munka végén kell egy kigyűjtés egy másik munkafüzetlapon, ahol csak azok a sorok kellenének, ahol NEM piros a B oszlop betűszíne..
Hogyan lehet egyszerűen automatizálni, hogy azok a sorok törlődjenek, ahol piros színű a B oszlopban lévő infó?
Attól függ, az Excelnek melyik verzióját használod. A 2007-től mód van a szín szerinti szűrésre az autoszűrővel. Kiszűröd a nem pirosakat, és átmásolod.
#1130
Elküldve: 2012. 09. 06. 11:19
Idézet: Delila - Dátum: 2012. 09. 06. 11:35
Köszönöm a választ.
Excel 2002 van telepítve, de nagyon kell találok portable 2007-es verziót!.
Szerkesztette: 0564 2012. 09. 06. 11:25 -kor
#1131
#1132
Elküldve: 2012. 09. 06. 14:55
#1133
Elküldve: 2012. 09. 16. 10:38
"Műszaki informatikus" nyelven van, tehát nem 1-től, hanem 0-tól számoz.
Ezt kellene nekem gyorsan, és közember számára érthetően táblázatba vinnem.
Azaz: a vízszintesen 0-15, függőlegesen 0-31-ig tartó elnevezéseket (pl:710-0-0-0, 720-2-15-8 ) kellene 1-1-1-1, 2-3-16-9 formátumra konvertálni,
mert roppant irritáló, hogy egy berendezés első eszközének, első oszlopának első pozíciója 0-0-0, amikor fizikailag az 1-1-1, és így tovább.
Mintegy 2000 tételes az eszköz, amiből jelenleg csak 3-400-zal kell foglalkozni, így a táblázatba az emészthető elnevezés kerülne.
Hogyan?
Szerkesztette: csozsi 2012. 09. 16. 10:38 -kor
"Úgy vezess, mintha te jönnél szemben is."
"semmi sem olyan állandó, mint az ideiglenes megoldások"
#1134
Elküldve: 2012. 09. 16. 20:26
Idézet: csozsi - Dátum: 2012. 09. 16. 11:38
"Műszaki informatikus" nyelven van, tehát nem 1-től, hanem 0-tól számoz.
Ezt kellene nekem gyorsan, és közember számára érthetően táblázatba vinnem.
Azaz: a vízszintesen 0-15, függőlegesen 0-31-ig tartó elnevezéseket (pl:710-0-0-0, 720-2-15-8 ) kellene 1-1-1-1, 2-3-16-9 formátumra konvertálni,
mert roppant irritáló, hogy egy berendezés első eszközének, első oszlopának első pozíciója 0-0-0, amikor fizikailag az 1-1-1, és így tovább.
Mintegy 2000 tételes az eszköz, amiből jelenleg csak 3-400-zal kell foglalkozni, így a táblázatba az emészthető elnevezés kerülne.
Hogyan?
Remélem, jól értem a problémát. Értelemzésem szerint így lehet megoldani:
Ha az első oszlop a számozás, a többi az adat, akkor a második oszlop első celláján állva Shift+Ctrl+End -> kijelödik
az aktív cellától az utolsóig a táblázat.
Ekkor a kurzort a kijelölt tartomány felső szélére viszed, amíg az megváltozik, és akkor lenyomod az egér bal gombját, lenyomva tartod, egeret lefele húzod, a kijelölt tartományt egy sorral lejjebb helyezed.
A 0-s sort kitörlöd, az utolsónak adsz egy következő számot.
#1135
Elküldve: 2012. 09. 16. 20:54
Idézet: hkpk - Dátum: 2012. 09. 16. 21:26
Ha az első oszlop a számozás, a többi az adat, akkor a második oszlop első celláján állva Shift+Ctrl+End -> kijelödik
az aktív cellától az utolsóig a táblázat.
Ekkor a kurzort a kijelölt tartomány felső szélére viszed, amíg az megváltozik, és akkor lenyomod az egér bal gombját, lenyomva tartod, egeret lefele húzod, a kijelölt tartományt egy sorral lejjebb helyezed.
A 0-s sort kitörlöd, az utolsónak adsz egy következő számot.
Ha ez lenne, menne talán nekem is.
De a fenti karaktersorok egy-egy cella tartalma, tehát nem oldja meg automatikusan.
Ez lesz az eredmény:
1-1-1-1 1-1-1-2 1-1-1-3 1-1-1-4 1-1-2-1 1-1-2-2 1-1-2-3 1-1-2-4 1-1-1-2 1-1-2-2 1-1-1-3 1-1-2-3
ahelyett, hogy lefelé a harmadik karakter növekedne.
1-1-1-1 1-1-1-2 1-1-1-3 1-1-1-4 1-1-2-1 1-1-2-2 1-1-2-3 1-1-2-4 1-1-3-1 1-1-4-1 1-1-5-1 1-1-6-1
"Úgy vezess, mintha te jönnél szemben is."
"semmi sem olyan állandó, mint az ideiglenes megoldások"
#1136
Elküldve: 2012. 09. 17. 07:42
Gondolom, az első számjegy az oszlop száma legyen.
A Munka1 lapról indítom a makrót, segédlapként a Munka2-t használom. Oszloponként átmásolom az adatokat a Munka2 A oszlopába, ott a "Szövegből oszlopok" funkciót használva szétszedem a kötjeles részeket 4 oszlopba. Az E oszlop az összefűzés. Első érték az oszlop száma, a többi a szétszedett értékek+1.
Ne zavarjon a fórummotor sajátos színezése.
Sub Pozicio()
Dim usor%, oszlop%
For oszlop% = 1 To 32
Sheets("Munka2").Range("A:D") = "" 'előző adatok törlése
Sheets("Munka1").Select
'Az oszlop%-adik oszlop másolása a Munka2 A oszlopába
Columns(oszlop%).Copy Sheets("Munka2").Range("A1")
Sheets("Munka2").Select
Range("A1:A16").Select
'Szövegből oszlopok a Munka2 lapon
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, Other:=True, OtherChar _
:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
'Képlet az E oszlopba
Range("E1:E16").FormulaR1C1 = _
"=COLUMN()-4&""-""&RC[-3]+1&""-""&RC[-2]+1&""-""&RC[-1]+1"
'E oszlop értékeinek másolása a Munka1 aktuális oszlopába
Range("E1:E16").Copy
Sheets("Munka1").Select
Cells(1, oszlop%).Select
Selection.PasteSpecial Paste:=xlValues
Next
End Sub
Szerkesztette: Delila 2012. 09. 17. 07:50 -kor
#1138
Elküldve: 2012. 09. 17. 20:58
Idézet: Pancsaa - Dátum: 2012. 07. 04. 21:11
Segítségeteket szeretném kérni excel megnyitással kapcsolatban.
Amikor asztalról megnyitok egy már elmentett exceltáblát, akkor mindig rányit egy teljesen üres excel munkafüzetet is.
Valami megsérülhetett az xlstartnál, vagy egyéb probléma lehet?
Az üres munkafüzet "Munkafüzet1" néven nyílik meg.
Köszönettel,
Pancsa
Talán nem késő:
nézd meg a fájltípusok társításánál, hogy az XLS / XLSX-hez milyen parancssor van beregiszrtrálva.
valahogy így kell kinéznie:
"C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE11\EXCEL.EXE" /e
(A lényeg, hogy a végén legyen /e kapcsoló)
#1139
Elküldve: 2012. 09. 18. 14:36
Szeretnék egy kis segítséget kérni. Elég nagy excel adatbázisból készítek kimutatást, amit dátum szerint kellene szűrnöm. Az a gondom, hogy amikor az eredeti adatbázist kapcsolattal "összekötöm" a kimutatásra szánt excelemmel, akkor a dátumokat tartalmazó oszlopot nem tudja dátumként kezelni a kimutatásban. Egy ideig nagyon jól működött a rendszer, egyik napról a másikra döntött úgy, hogy nem kezeli tovább a dátum formátumot. A cellaformázás nem segít a dolgon.
Kérek szépen tippeket, mit kellene állítanom, hogy jól működjön.
Köszönöm.
Fero79
#1140
Elküldve: 2012. 09. 19. 17:58
Idézet: fero79 - Dátum: 2012. 09. 18. 15:36
Szeretnék egy kis segítséget kérni. Elég nagy excel adatbázisból készítek kimutatást, amit dátum szerint kellene szűrnöm. Az a gondom, hogy amikor az eredeti adatbázist kapcsolattal "összekötöm" a kimutatásra szánt excelemmel, akkor a dátumokat tartalmazó oszlopot nem tudja dátumként kezelni a kimutatásban. Egy ideig nagyon jól működött a rendszer, egyik napról a másikra döntött úgy, hogy nem kezeli tovább a dátum formátumot. A cellaformázás nem segít a dolgon.
Kérek szépen tippeket, mit kellene állítanom, hogy jól működjön.
Köszönöm.
Fero79
Vezérlőpult alatt, a területi beállításoknál a rövid dátum formátumot csekkold, a pontokra is fókuszálj. Olyan legyen, mint a dátumok oszlopában.

Súgó
A téma zárva.












