-
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
-
válasz
Guitar14
#43881
üzenetére
Azt nem tudom, miket állítgattál már kínodban a DDE-nél, de próbáld eredeti állapotra visszaállítani elsőre.

1. Excel legyen bezárva
2. Az alábbi "kódokat" másold ki, illeszd be egy üres TXT fájlba és mentsd el REG kiterjesztéssel őket (ez fontos)
Az alábbi "kódot" mentsd el pl. excel_tobb_ablakban_fut.reg néven és futtasd.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options]
"DisableMergeInstance"=dword:00000001Ezt a "kódot" meg mentsd el pl. excel_alaphelyzetbe.reg néven és ha szükséges (több ablakos helyett visszaállnál a régi állapotra) csak akkor futtasd.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options]
"DisableMergeInstance"=-Kipróbálni nem tudom, mert nincs kéznél Office 2010, de remélem segít...
Ha műxik, akkor intézőből vagy Total Commander-ből stb stb indítva az Excel fájlokat, külön Excel ablakban kellene megnyílniuk. -
válasz
Vladek83
#43643
üzenetére
Ezt a 2 dolgot próbáld meg elsőre
1. Excel indít, Fájl/Beállítások/Általános/Élő minta engedélyezése elől pipa ki, OK, kilép Excel-ből, majd újra elindítod
ha ez nem hoz eredményt, akkor az 1. pontban levő opciót engedélyezd újra
2. Excel legyen bezárva (ill. minden Office app), WIN gomb + R, excel /regserver beír és enterha ez sem jó, akkor meg
3. Google keresés erre: microsoft excel there's a problem with the clipboard but you can still paste
Itt lesznek olyan megoldások, amiket könnyebb elolvasni, mint ide beírni...UI: Office legyen uptodate, és ha van esetleg tudomásod olyan háttéralkalmazásról, ami a vágólapot kezeli, az legyen kilőve. Az, hogy egyszer jó, egyszer meg nem, az igazából erre utal, tehát az Excel-el együtt valami még meg van nyitva. Ez lehet egy olyan progi is, ami a háttérben "sumákol", de olyan is, amit gyakran használsz és láthatóam meg is van nyitva, amikor az Exceltt használod... Ez utóbbi esetben magad is rájöhetsz, hogy ki a hunyó, mert az általában Excel-el egyidőben megnyitott app-okat egyesével megnyitod, és ellenőrződ a hibát, amelyik app megnyitása után befigyel a hiba, jó eséllyel az a gond...
-
válasz
Zsolt_16
#43037
üzenetére
Sajnos ezt most nem tudom elmagyarázni, de Delila_1 majd elmagyarázza...

(rohannom kell figymarángató W10 Intel Micro-Code Update miatt, döglenek a gépek)
Delila_1 szét fogja rúgni ez miatt a seggecském, mert aki siet, az ne írogasson... (imádlak hölgyemény)
D2 cella kódja CSE, azaz Control + Shift + Enter):
=HAHIBA(INDEX($B$2:$B$15;KICSI(HA(D$1=$A$2:$A$15;SOR($A$2:$A$15)- MIN(SOR($A$2:$A$15))+1;""); SOR()-1));"")UI: Nem ártana, ha konkrét dolgot írnál, nem pedig utólag ilyet, hogy "zárolt Excel-t" készítek...
Itt a topikban nagyon jó arcok vannak (értsd: nem ma kezdték a szakmát és segítőkészek), de utólag nem szeretünk olyan dolgokat, mint pl esetedbe, hogy "zárolt excel", mert, akkor egész megoldás megy a retekbe...

-
válasz
RAiN91
#43035
üzenetére
Private Sub CommandButton1_Click()
Dim MySpecComputerName, MyComputerName As String
MySpecComputerName = "UBUL-PC"
MyComputerName = Environ("computername")
If UCase(MyComputerName) = UCase(MySpecComputerName) Then
MsgBox (MySpecComputerName & " gépén fut a makró")
'ide kerül a makró, amit futtatni szeretnél
Else
MsgBox (MyComputerName & " gépén NEM fut a makró")
End If
End SubFelhasználónevet is be lehet olvasni, ha esetleg kell:
UserName = Environ("username") -
-
-
válasz
lanszelot
#43010
üzenetére
Az a leírás OpenOffice Writer-hez van, Excel-ben nincs ilyen külön "brossúra nyomtatás" opció...
Excelben "kicsit" körülményesebb megvalósítani, de talán ez megoldás lehet a számodra
1. A4-es papírméret mellett létrehozod az A6-os szegmenseket illetve minden egyes oldal egy új munkalapra kerüljön
2. Ellenőrződ az oldaltörést, hogy az csak is a kitöltött szegmensek területét fedje le. (Nyilván Te majd más cellaméreteket használsz, hogy az kiadja az A6 méretet, illetve margók stb beállítás, de utána az oldaltörést mindenképp ellenőrizd le)
3. A nyomtatási képen a képen látható opciók legyenek kiválasztva minden oldalon. (Amennyiben az első munkalapod kész van, minden beállítás passzol, akkor az újabb munkalapokat az első másolataként hozd létre, akkor nem kell a nyomtatási beállításokat minden oldalon beállítgatni) Munka2 munkalap
Nem tudom, ez hasznos-e a számodra, de talán igen...
-
-
Ha 32bites Office-t használsz, akkor ez a gond...
Hiába a 64 bites OS, a 32bites alkalmazások nem tudják címezni a 2GB feletti memóriát. Ezen a 2GB osztozik minden 32bites alkalmazás, így nyilván ha sok alkalmazás fut (több példányban az Excel, meg az Office többi tagja), akkor előállhat az a helyzet, hogy elfogy ez a 2GB...Az egyik kézenfekvő megoldás, hogy az általad használt Office 64 bites változatát kellene használni avagy egy időben csak 1 Excel fusson, illetve a linkben még arra tesznek javaslatot(több más mellett), hogy a grafikus hardvergyorsítás tiltása az Excelben talán segíthet...
-
válasz
torrentwarez
#42962
üzenetére
Nézd meg a CSV adott sorát, lehet, hogy már abban van valami "elrontva". Vélhetően az F oszlopot újra kellene formázni...(mondjuk az nem biztos, hogy egyszerű lenne a formázás, ha valami nagyon elcseszett adatot vett át a CSV-ből)
Ha elküldöd a CSV-t az e-mail címemre (firesoulcd@gmail.com), vagy megosztod, hogy mindenki elérje, akkor okosabb lennék/okosabbak lennénk talán... Talán kiderülne a "turpisság" (pl magyar területi-beállításnál vesszőnek kell lennie a tizedes-elválasztónak, nem pontnak...)
-
válasz
Bandita0176
#42941
üzenetére
-
Akkor még egy megoldás, csak a változatosság kedvéért...

Alaphelyzet
Makró futtatása után (Start Macro gomb)
1. új munkalap | 2. új munkalap | 3. új munkalap
Létrehozott munkalapok törlése után (Delete Created Sheets gomb)Macro forráskód
Option Explicit
'Globális deklarációk
Dim MySrcRange, MyTempRange, MyCell As Range
Dim MySheetNamesArray() As String
Dim MySheetNamesIndexArray() As Long
Dim MyArrayIndex, MyDestOffset As Long
Dim MySrcSheetName, MySrcCodesColumn, MySrcCodesRow, MyDestCodesColumn, MyDestCodesRow As String
Private Sub CommandButton1_Click()
'Képernyő frissítés KI
Application.ScreenUpdating = False
'Forrás munkalap és cella beállítása
MySrcSheetName = "Munka2"
MySrcCodesColumn = "A"
MySrcCodesRow = "2"
'Cél cella beállítása
MyDestCodesColumn = "B"
MyDestCodesRow = "2"
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'Tartomány létrehozása a forrás adatok alapján
Set MySrcRange = Range(MySrcCodesColumn & MySrcCodesRow & ":" & MySrcCodesColumn & Cells(Cells.Rows.Count, MySrcCodesColumn).End(xlUp).Row)
'Dinamikus tömbők átméretezése a tartományban található cellák száma alapján (üreseket is beleértve)
ReDim MySheetNamesArray(0 To MySrcRange.Count - 1)
ReDim MySheetNamesIndexArray(0 To MySrcRange.Count - 1)
MyArrayIndex = 0
'Végignézzük a forrástartomány használt celláit
For Each MyCell In MySrcRange
'Ha üres, akkor kihagyjuk
If Not IsEmpty(MyCell) Then
'Aktuális munkalap létezik?
If Not SheetExists(MyCell.Text) Then
'Nem létezik, létrehozzuk és beírjuk a forráscella értékét
ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveSheet.Name = MyCell.Text
Sheets(ActiveSheet.Name).Range(Cell1:=MyDestCodesColumn & MyDestCodesRow) = MyCell.Text
'Létrehozott munkalap nevét beírjuk a tömb megfelelő pozíciójába és megnöveljük a tömb indexét
MySheetNamesArray(MyArrayIndex) = MyCell.Text
MySheetNamesIndexArray(MyArrayIndex) = MySheetNamesIndexArray(MyArrayIndex) + 1
MyArrayIndex = MyArrayIndex + 1
Else
'Létezik, meghatározzuk a célcella eltolási értékét és beírjuk a forráscella értékét
MyDestOffset = GetDestRangeOffsetAsSheetName(MyCell.Text)
Sheets(MyCell.Text).Range(Cell1:=MyDestCodesColumn & (MyDestCodesRow + MySheetNamesIndexArray(MyDestOffset))) = MyCell.Text
'Eltolási értéket megnöveljöük az eltolási értékeket tartalmazó tömbben
MySheetNamesIndexArray(MyDestOffset) = MySheetNamesIndexArray(MyDestOffset) + 1
End If
End If
Next MyCell
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'Képernyő frissítés BE
Application.ScreenUpdating = True
'Start Macro gomb tiltása, Delete Created Sheets parancsgomb engedélyezése
CommandButton1.Enabled = False
CommandButton2.Enabled = True
End Sub
'Az adott munkalap létezik vagy nem
Public Function SheetExists(SheetName As String) As Boolean
Dim MyWorkSheet As Worksheet
Dim Result As Boolean
Result = False
For Each MyWorkSheet In ThisWorkbook.Sheets
If UCase(MyWorkSheet.Name) = UCase(SheetName) Then
Result = True
Exit For
End If
Next MyWorkSheet
SheetExists = Result
End Function
'A léterhozott munkalapon a cél cellák eltolási értékei
Public Function GetDestRangeOffsetAsSheetName(CurrentSheetName As String) As Long
Dim i As Long
For i = 0 To MySrcRange.Count - 1
If MySheetNamesArray(i) = CurrentSheetName Then
GetDestRangeOffsetAsSheetName = i
Exit For
End If
Next i
End Function
'A létrehozottt munkalapok törlése
Private Sub CommandButton2_Click()
Dim i As Long
'A megerősítő ablak(ok) megjelenésének tiltása
Application.DisplayAlerts = False
'Létrehozott munkalapok törlése
For i = 0 To MyArrayIndex - 1
If SheetExists(MySheetNamesArray(i)) Then Sheets(MySheetNamesArray(i)).Delete
Next i
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'A megerősítő ablak(ok) megjelenésének engedélyezése
Application.DisplayAlerts = True
'Start Macro gomb engedélyezése, Delete Created Sheets parancsgomb tiltása
CommandButton1.Enabled = True
CommandButton2.Enabled = False
End Sub -
válasz
Andris246
#42872
üzenetére
Ha Copy/Paste-el másoltad át a képletem és csak annyit módosítottál, hogy A1-ről E1-re, akkor lehet, hogy csak annyi a gond, hogy az E1 cella üres vagy 0, hisz előbbi esetben $D$ (ez is hibás hivatkozás), utóbbi esetben meg $D$0 lenne (ez is hibás, hisz a sorszámozás 1-ről indul, nincs 0-ás sor). Szóval E1-be 1 vagy nagyobb szám kerüljön...
-
-
Félreértesz, a 2016/2019/365 az egy kódbázisra épül egy kaptafa, DEEEE, nem elég, hogy a MicroSoft azzal is szivatta a jónépet, hogy az asztali 2019-t csak W10 alá lehet pakolni, még rátett egy lapáttal, ennek eredménye, hogy az az asztali 2019-ben sincs FŰZ függvény, csak a nyamvadt 365-ben...

Én W10 alatt 2019-t használok, de Én sem tudom kipróbálni Mutt kódját, mert nincs FŰZ függvény, ugyanolyan képet tudnék berakni a 2019-ről, mint Te korábban...

UI: FŰZ fx-t 2016-ban/tól kompatibilitási okok miatt az ŐSSZEFŰZ "helyettesíti"...
-
-
válasz
Andris...
#42828
üzenetére
Hali!
Ha Office 2016/2019/365 használsz, akkor jól jöhet: Excel Functions Translator

Nem csak egy adott függvény nevét képes "lefordítani", hanem összetett függvény-kifejezéseket/képleteket is, pl ilyet is, amit Mutt kolléga itt eszközölt...
-
válasz
szabonagyur
#30030
üzenetére
Globális beállítás nincs (rendszerszinten sincs értelme a naptárbeállításokkal mókolni, mert nem foglalkozik vele az Excel). Neked kell meghatározni az év első napját (milyen napra esik/az az OS alapbeállítása is egyben avagy sem, ha nem, akkor megfelelő kompenzációs értékeket meghatározni stb stb) és megfelelő programozástechnikával írni a függvényeket.
Az nem járható út, hogy most fix-en péntekre akarod állítani az első napot és fixen írni az FX-ket, mert jövő évben már nem fognak rendesen működni a makrók ez miatt. -
válasz
szabonagyur
#30026
üzenetére
A HÉT függvénynek 2 paramétere van, a 2. paraméter azt határozza meg, hogy milyen nappal kezdődik a hét, nyilván ez évben ez péntek. [link]
-
-
válasz
Bobrooney
#29868
üzenetére
Korábban írtad feltételnek ezt, hogy: "Érvénytelen adatok: mindegyiknek vesszük a dupláját és maradék nélkül osztjuk 7-el"
Csak azért idézem, mert ez egy értelmetlen feltétel, hisz ha valaminek a dupláját el tudod osztani maradék nélkül 7-el, akkor magát a számot is el lehet osztani maradék nélkül 7-el...
(ettől függetlenül meghagytam a képletben, csak szóltam)E1 cella képlete (természetesen tömbképletként kell bevinni)
=DARAB(HA(MARADÉK(A1:C5*2;7)=0;A1:C5))-DARABÜRES(A1:C5)-DARABTELI(A1:C5;"=0")Az üres és a nullákat tartalmazó cellákat kivontam a képletben, ellenkező esetben a tömbképlet azokat is megfelelőnek tartaná a kritériumnak(azaz a kétszeresük maradék nélkül osztható 7-el).

-
válasz
#83216640
#29863
üzenetére
Nem írtad, hogy milyen verziójú Excel-t használsz. Ha újabbat, akkor 1 segédoszloppal és a SZUMHATÖBB() függvénnyel megoldható, ha régebbi az Excel(ami nem ismeri még az említett függvényt), akkor 2 segédoszloppal és a SZUMHA() függvénnyel is kivitelezhető.
C1 cella képlete
=HA(ÉS(A1>=DÁTUMÉRTÉK("2015.12.06");A1<=DÁTUMÉRTÉK("2015.12.31"));1;0)D1 cella képlete
=HA(ÉS(B1>0;B1<20000);100;HA(ÉS(B1>=20000;B1<50000);250;350))F1 cella (a SZUMHA() függvény) képlete
=SZUMHA(C1:C15;"=1";D1:D15)G1 cella (a SZUMHATÖBB() függvény) képlete
=SZUMHATÖBB(D1:D15;A1:A15;">=2015.12.06";A1:A15;"<=2015.12.31")Remélem érthető a kivitelezés.
-
válasz
MegaNorby
#29848
üzenetére
Az irányított beillesztés lesz a barátod, amiről épp az imént volt szó. magyarul (maradva a korábbi példánál/megoldásnál), beszúrsz még egy segédoszlopot(legyen most C oszlop), kijelölöd a B oszlopot(ahova korábban a képlet már elé tette a 06-t), jobb egér/másol, C oszlop kijelöl, jobb egér/irányított beillesztés/értékek, majd B oszlop(meg végül is az A oszlop is) kijelöl és töröl.
UI: ilyen kérdéseket tényleg ne tegyetek OFF-ba, Thx!
-
válasz
PETEE78
#29834
üzenetére
Alapvetően 3 megoldás van Magyar Excel (pontosabban magyar billentyűzet) esetén:
2. CTRL+C -> CTRL+WIN+V -> CTRL -> É -> Enter
3. A beviteli módszer módosítása OS szinten. Ilyenkor az értesítési területen (az óra mellett) megjelenik/ilyenre módosul az "ikon". CTRL+SHIFT megnyomásával lehet váltani a beviteli módok közt(oda-vissza, alkalmazásokon belül és kívül), azaz ily módon. Utóbbi esetben angol bevitel lép érvénybe és ekkor már működik az Excel-ben az irányított beillesztés ablak megjelenítése a CTRL+ALT+V bill. kombóval, azaz ilyenkor ez az eljárás: CTRL+C -> CTRL+ALT+V -> R -> Enter.
(Én ez utóbbit használom, mert fejlesztőkörnyezetekkel dolgozom(tehát nem az Excel miatt) és ott jobb az angol/amerikai bevitel, hozzászoktam az elmúlt több, mint 20 év alatt...
)[ Módosította: pepe091 ]
-
A Te makród (nem vagyok Excel közelben), de az is jól kell hogy működjön és mivel ott van egy fontos feltétel, ezért be lehet vinni simán adatokat, még ha eseményhez is van rendelve(legalábbis teljesen üres sorokba biztosan)
.
(Azért valaki kipróbálhatná, de szvsz nincs vele semmi gond) -
válasz
bteebi
#29816
üzenetére
Ránézésre rendesen fog működni, azt teszi, amit kell.
(csak nyilván nem szabad eseményhez rendelni, mert onnantól, amíg a makró fut, nem kell adatot bevinni...)
MegaNorby
felveszel egy segédoszlopot, pl ha A1-ben vannak a telószámok, akkor B1-be ezt a képletet írd majd másold végig:
="06" & A1Delila_1
Sajnos nem sok időm van, ami meg igen, annak nagy részét egy másik topikkal kapcsolatos teendőim felemésztik. Hébe-hóba benézek ide is, de makróra (komolyabbra) nem feltétlenül van/lesz időm.
(Mondjuk ahogy látom, vannak jó koponyák a topikban, szóval nem aggódom, hogy az érdeklődők ne kapnának választ, akár egy "fejtörősebb" feladványra is...) -
-
válasz
KaiotEch
#26327
üzenetére
Nem véletlenül kérdeztem ám...
![;]](//cdn.rios.hu/dl/s/v1.gif)
A hónapok sajnos nem azonos napokból állnak, vannak ugye 31/30 naposak, meg a "fránya" február, ami 28 avagy épp szökőévben 29 napos.
Ha minden hónap 30 napos lenne, akkor Delila_1 megoldása hibátlan lenne, de így nem az, mert a 31 napos hónapok utolsó napját(pl 2015.01.31) nem jól fogja megjelölni.Röviden: a megfogalmazás nem mindegy, mert az 1 hónappal korábbi az nem egyenlő a 30 nappal ezelőtti megközelítéssel.
Természetesen, ha csak a megfogalmazásod nem volt egyértelmű és amúgy azt szeretted volna elérni, amire megfelelő megoldást kaptál, akkor minden OK.

-
-
-
válasz
Gyufaaa
#25270
üzenetére
Adatok és Legördülő menü
G4 képlete =FKERES(F4;$C$5:$D$9;2;HAMIS)
Másold le a cellákat -
válasz
Fire/SOUL/CD
#25268
üzenetére
Megírtam 32bites számokhoz is, hátha kell...
![;]](//cdn.rios.hu/dl/s/v1.gif)
=DEC.BIN(MARADÉK(A1/2^24;2^8);8) & DEC.BIN(MARADÉK(A1/2^16;2^8);8) & DEC.BIN(MARADÉK(A1/2^8;2^8);8) & DEC.BIN(MARADÉK(A1;2^8);8)
-
-
-
Ez egy teljesen új kép... Annak jobban örültem volna, ha a korábbi állapotban(amiről a korábbi képet beraktad) készült névjegyzéket láttam volna, mert itt az újnál már aosz sincs stb...
Maradva akkor ennél az új állapotnál, ha elmented a táblázatot, majd (biztos, ami biztos) nyomsz egy F9-t, azt követően a makró nem írhatja ki az $A$1-t, hanem az $A$7-t, mint a proba tartomány címét.
(Amúgy itt már helyes a címzés, mert az F7 cellában valóban a próba tartomány (ami az A7) értéke jelenik meg, nem mint korábban) -
Biztosan nem így van (max így gondolod, hogy kellene lennie) mert a makród MsgBox Range("aosz").Address egyértelműen az A1 cella címét adja meg, mint aosz néven elnevezett tartomány címét. Szóval ebből kell kiindulni.
Ehhez ellenőrizd a tartományokat és elnevezésüket, Képletek/Névkezelő segítségével. 1 tartományt ha többször próbáltál más névvel ellátni(lehet, csak figyelmetlenségből stb), akkor 1 tartományhoz több cím is tartozik és mindig a legutolsó az érvényes(bizonyos műveleteknél), pl legyártottam most direkt egy hibás megközelítés: [link]. Értelem szerűen csak 1 elnevezése lehet 1 tartománynak egyébként keveredés lesz. (Lehet 1 tartománynak több neve is, csak akkor a programozónak szándékosan kell ezt kiviteleznie, és tudnia, hogy ő maga hozott létre több nevet 1 tartományhoz) -
-
-
-
válasz
snorbi82
#23963
üzenetére
Azt hiszem félreértjük egymást... Nekem/nekünk ez a táblázat kellene, amiről így teszel említést:
"Természetesen nekem olyan táblám van ami nem így néz ki. Jelen pillanatban van egy táblám amiben 100 ember van, adatai egymás mellett."Na ez a tábla kellene, valami kamu adatokkal.
-
válasz
snorbi82
#23961
üzenetére
Ennyi info alapján senki sem fogja megmondani neked, hogy kivitelezhető-e avagy sem. Itt csak annyi látszik, hogy Rekordtípus-tól Ellenőrző szám-ig vannak az oszlopok és a rekordtípus határozza meg, hogy mely oszlopokba kerüljenek adatok.
A te eredeti táblád felépítése nélkül senki sem tudja, hogy honnan/hogyan kellene ezeket az adatokat belemásolni. Ha az eredeti táblát nem is, de az eredeti táblázatoddal teljesen megegyező, csak kamu adatokkal feltöltött táblázatot kellene megosztanod, hogy lássuk, mégis mi-merre hány lépés... -
-
"Fejtörő".
Szerintetek makró vagy segédoszlop nélkül kivitelezhető a feladat?
(ha csak a legtöbbször/legkevesebbszer előforduló elem értéke és száma lenne a feladat, akkor egy kicsit összetettebb tömbképlettel kivitelezhető, de itt ugye a 2. 3. stb legtöbbször előforduló elem értéke és száma a feladat) -
-
-
-
1. Ha az a korábbi kód egy valós kód volt(és nem csak valamit betettél példának), akkor az a kód minden esetben az épp aktív munkalapon dolgozik, ergo mindegy hány darab és nevű munkalap van a munkafüzetben, mindig azon végzi el a módosításokat/feladatát, ami épp ki van jelölve, azaz aktív.
2. Az is egyértelműen leírtad, hogy az INT nevű munkalap minden esetben biztosan létezikEbből kiindulva ennyi az egész ("if munkalap neve = INT, lefut a makró, else nem fut le" - olyan nincs, hogy else nem fut le)

Private Sub MyMacro()
Dim lngLastRow
If ActiveSheet.Name = "INT" Then
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Columns("X:X").Select
Selection.Insert Shift:=xlToRight
Range("X1").Select
ActiveCell.FormulaR1C1 = "common_id"
Range("X2").Select
.
.
.
.
End If
End Sub -
-
-
-
válasz
detroitrw
#17005
üzenetére
"arra megkérhetnélek hogy egy ilyen kis szövegdobozos megjelenítős félét megtudnál osztani ami Nálad működik?"
Pont ezt tettem itt.
(Létrehozol egy új üres munkafüzetet, beszúrsz 2 darab ActiveX Command Button-t (egyik lesz a CommandButton1, másik a CommandButton2), rájuk klikkelsz duplán és az imént linkelt hsz szerint módosítod a makrót.Ennél egyszerűbb megoldás nincs és annak mennie kell.

-
válasz
detroitrw
#16976
üzenetére
Eltünt a netem, nem tudtam szerkeszteni...
Szóval ha az előző módszer megy kifogástalanul, akkor ennyit kell módosítani (példában Munka1 lapon van a command1 és a munka2-n a command2)Munka1 - itt fontos, hogy hivatkozni kell a munka2-re
Private Sub CommandButton1_Click()
Munka2.CommandButton2_Click
End SubMunka2 - itt az a fontos, hogy Public a deklaráció (enélkül munka1-en nem "látja" a command1)
Public Sub CommandButton2_Click()
MsgBox ("CommandButton2_Click")
End SubRitkán alkalmazzák az ilyen megközelítést, pont azért, mert körülményes és könnyen be lehet nézni, helyette Module-ban globálisan célszerű az eljárásokat megírni.
-
-
Pont most linkelte Mutt a trükkös megoldást, kár, hogy nem töltötte le a teljes táblázatot.
Esetedben ez annyit tesz, hogy minden egyes sorszámozott lap esetén egyéni "trükk" kell, ergó többet fogsz ezzel eltölteni, mint hogy a progi a kezed alá dolgozzon (mert így nem lehet egységes eljárást készíteni, mindhez külön kell lényegében) -
Az nem megoldás, különösen, ha keresések is zajlanak, beépített fx-ekkel...

Traxx
Itt sajnos a legalapvetőbb problémát kellene kiküszöbölni, azt, amit adatbázisok estén egyszerű, de excelnél adatbázisul szolgáló táblázatoknál nem lehet (vagy igen körülményesen (min. makrót bevonva))
Nálad -adatbázis esetén így nevezik- egy a többhöz kapcsolat kellene... (legördülő listák alapból alkalmatlanok erre, stb stb) -
Fel tudnád tölteni egy fájlmegosztóra a táblázatot (ha vannak nem publikus adatok, azokat írd át benne előtte), mert akkor ránéznék. (Délutánra csak Windows update-k vannak, azok meg csak mennek töltenek, telepítenek, szóval most van egy kis időm ezzel foglalkozni)
Ha direktbe csak nekem küldenéd, akkor privátban megadtam azt az email címem, amire küldheted.UI: Ez a struktúra nem alkalmas a feladatra vagy csak igen nehézkesen, ha időmbe bele fog férni, akkor teljesen átalakítom használhatóvá, csak ahhoz a teljes doksira van szükségem, hogy mindent lássak benne.
-
"Amint látszik, az első javítást kiválóan hozza is, de a másodikat (a 60. sorban lévőt) valamiért nem"
Cellaegyesítésnél(B oszlopban ez van) ez nem alkalmazható eljárás
(Ha ráállsz a B59-es cellára, az az, ami egyesítve van, viszont csak az első javítás van vele azonos sorban(59.), a második javítás már a 60.-ban)"A másik gondom: a 9. hónap után valamiért az egész nem akar működni
0 értéket hoz mind az elvégzett munkánál, mind az alkatrésznél."
A képed alapján 10. hónaptól teljesen üres, nincsenek adatok, ergo 0-t ad vissza. -
-
válasz
Z-Tom-ee
#16748
üzenetére
=DARABHATÖBB(A1:A7;"=A";B1:B7;"<>""")
Excel 2007 vagy újabb esetén és nem tesz különbséget kis- és nagybetű között -
válasz
bugizozi
#16735
üzenetére
nyilván az már most is konfigurálva van, hogy többen elérhetik az adott állományt és az is, hogy kinek van módosításhoz joga és kinek nincs, ergo a Változások követése opcióval egyszerűen kivitelezhető, amit írtál, mert a módosított cellák meg lesznek jelölve, megjegyzés lesz automatikusan hozzárendelve, amiben pontosan láthatod majd, hogy ki, mikor mit és mire módosított. [link]
-
-
válasz
klambi
#15790
üzenetére
A HÉT.NAPJA függvénynek van ám egy 2. paramétere, hogy hogyan legyenek számozva a napok. Szerintem ha megnézed, akkor már meg fogod oldani a problémát.
-
-
-
-
-
-
válasz
Delila_1
#15448
üzenetére
Lehetni lehet, csak nem ebben a topikban elsősorban... Vannak itt jó szakik, akik nem hagyják a kérdezőket válasz nélkül hosszabb időre, illetve mostanság már megkezdődött az év végi "őrület", így gépeket pakolok össze/telepítek látástól-mikulásig (most is vagy 150 kilométerre vagyok az otthontól, majd talán 11-körül hazaérek), nem igazán van energiám makrókra.(mostanság meg elsősorban ilyen jellegű segítséget kérnek a userek)
Néha benézek ide is azért, ha esetleg lógva marad egy kérdés -és tudom rá a választ-, akkor azért majd beírom... -
-
-
-
Az ErrorFound vizsgálatával tudod majd eldönteni, hogy a megadott tartományban volt-e olyan cella(legalább 1), ami hibát tartalmaz.(A kód az első talált hiba esetén nem vizsgálja tovább a további cellákat)
Dim MyRange As Range
Dim MyCell As Range
Dim ErrorFound As Boolean
Set MyRange = Range("C9:V9")
ErrorFound = False
For Each MyCell In MyRange
If Application.WorksheetFunction.IsError(MyCell) Then
ErrorFound = True
Exit For
End If
Next MyCell -
válasz
ancarian
#15261
üzenetére
"...összeszámolja egy oszlop azon értékeit..."
kérdés, hogy mit értesz összeszámoláson, azt hogy hány darab feltételnek eleget tevő elem van, avagy azok összege mennyi.Akárhogy is, de a SZUMHA, SZUMHATÖBB, DARABTELI és DARABHATÖBB függvényknek nézz utána. (Akár itt a topikban is rákereshetsz, számtalanszor előfordultak már)
-
-
-
Űrlap vezérlőjét nem lehet állítani. használj ActiveX vezérlőt(CommandButton), jobb égér rajta/Tulajdonságok/ és a BackColor tulajdonságnál módosíthatod a színét.
(ForeColor meg az írás színe)Dj Sügi
Ha több feltétel nem lesz, azaz nem lesz még, hogy 15M feletti érték is lesz, akkor sima cellaformázással is kivitelezhető.
Persze az kérdéses számomra, hogy pl a 999999-ből hogyan is lesz 999E, mert 999000 esetén még érthető.Mindegy, azért beteszem a formázást, arra ügyelj, hogy a formázásban több szóköz van egymás után, nem véletlenül, viszont ha pl Firefox-ot használsz, akkor amikor kimásolod majd a formátumot, az eltávolítja a felesleges szóközöket, ami ebben az esetben hibás működést von majd maga után.
Chrome vagy Dragon rendesen tudja másolni vagy kézzel bepötyögöd.[<1000]###" fő";[<1000000]#####0 " E";#######0 " M"
-
-
válasz
#05304832
#15075
üzenetére
Pont az van, amit írtam, azaz vannak olyan cellák, amiből hiányzik a tizedeselválasztó, mert valamelyik fatökű lepkevadász egyszer 0-val, másszor meg 0.0-val jelöli a semmit...

Ha lesz még hiba, azt már Te javítod a makróban, ez megint működik
Dim MyDestRange As Range
Dim MyCell As Range
Dim MyArray() As String, MyDig As String
'Itt van beállítva, hogy G2-ben van az első cella
'és egybefüggően az M oszlopig tart
'Hogy az M oszlopban melyik az utolsó használt cella, azt a kód meghatározza
Set MyDestRange = Range("G2:" & "M" & Cells(Cells.Rows.Count, "M").End(xlUp).Row)
Application.ScreenUpdating = False
For Each MyCell In MyDestRange
With MyCell
If Not IsEmpty(MyCell) Then
xstr = .Text
If InStr(xstr, ".") > 0 Then
xstr = Replace(xstr, ".", ",", vbTextCompare)
MyArray = Split(xstr, ",")
MyDig = "#0."
For i = 1 To Len(MyArray(1))
MyDig = MyDig + "0"
Next i
Else
MyDig = "#0.0"
End If
.Value = xstr * 1#
.NumberFormat = MyDig
End If
End With
Next MyCell
Application.ScreenUpdating = True -
válasz
#05304832
#15073
üzenetére
Attól még, hogy mindig más, attól gondolom ugyanúgy a G-M oszlopokban vannak az adatok nem?
Ha leakad a makró, az azért van, mert megint olyan cellával találkozik, amiben valamiért nem szabályos adat van. Amikor leakad a makró, akkor nézd meg az adott táblázatban, hogy melyik cellán akadt le és nézd meg annak a tartalmát.
(Az is lehet, hogy nincs is benne tizedeselválasztó vagy hasonló) -
válasz
#05304832
#15069
üzenetére
Ennek jónak kell lennie
Dim MyDestRange As Range
Dim MyCell As Range
Dim MyArray() As String, MyDig As String
'Itt van beállítva, hogy G2-ben van az első cella
'és egybefüggően az M oszlopig tart
'Hogy az M oszlopban melyik az utolsó használt cella, azt a kód meghatározza
Set MyDestRange = Range("G2:" & "M" & Cells(Cells.Rows.Count, "M").End(xlUp).Row)
Application.ScreenUpdating = False
For Each MyCell In MyDestRange
With MyCell
If Not IsEmpty(MyCell) Then
xstr = .Text
xstr = Replace(xstr, ".", ",", vbTextCompare)
MyArray = Split(xstr, ",")
MyDig = "#0."
For i = 1 To Len(MyArray(1))
MyDig = MyDig + "0"
Next i
.Value = xstr * 1#
.NumberFormat = MyDig
End If
End With
Next MyCell
Application.ScreenUpdating = True -
-
válasz
Sickboy25
#15062
üzenetére
Pontosabban/egyértelműbben fogalmazz, mert egyik kérdés üti a másikat...
Az első kérdésedben még valami össz darabszámról kérdezel, majd a következő kérdésedben meg már tényként írod, hogy beírod a darabszámot és egy összeget kellene meghatározni.
Szóval akkor hogy is van ez?
(szívesen segítek, de tényleg nem értem) -
válasz
#05304832
#15060
üzenetére
Ja, hát ez kicsit más, kezdve a kilométeres tizedesjegyektől, amelyek száma oszloponként is változik. Egy jó makróban ezt le kell kezelni, azaz ellenőrizni a tizedesek számát és az szerint formázni a cellát. Az már csak hab a tortán, hogy egy oszlopon belül is változik a tizedesjegyek száma...
-
válasz
#05304832
#15057
üzenetére
Dim MyDestRange As Range
Dim MyCell As Range
'Itt van beállítva, hogy G2-ben van az első cella
'és egybefüggően az M oszlopig tart
'Hogy az M oszlopban melyik az utolsó használt cella, azt a kód meghatározza
Set MyDestRange = Range("G2:" & "M" & Cells(Cells.Rows.Count, "M").End(xlUp).Row)
Application.ScreenUpdating = False
For Each MyCell In MyDestRange
With MyCell
If Not IsEmpty(MyCell) And IsNumeric(MyCell) Then
.Value = Replace(.Value, ".", ",", vbTextCompare)
.Value = .Value * 1#
MyCell.NumberFormat = "General"
End If
End With
Next MyCell
Application.ScreenUpdating = True -
válasz
#05304832
#15056
üzenetére
Akkor a tartományt kell átírnod. A korábban adott kódban ebben a sorban
Set MyDestRange = ActiveSheet.UsedRange
kell megadni a tartományt, pl én most az A2:B20 tartományt(Range) adom meg
Set MyDestRange = Range("A2:B20")
Te meg nyilván a G2:M1000 (vagy ameddig az M oszlopban van az utolsó adatcella)
Nyilván ez körülményesebb megoldás, hisz változhat, hogy a G-től M oszlopban hány adat szerepel. Mindjárt módosítom a kódot.
-
-
-
-
válasz
#05304832
#15047
üzenetére
Így próbáld. Ez az aktív munkalapon lecseréli a pont karakter az összes használt cellában. Nyilván ha nem az összes cellán kell a művelet, akkor majd átírod, de az elv benne van.
Dim MyDestRange As Range
Dim MyCell As Range
Set MyDestRange = ActiveSheet.UsedRange
For Each MyCell In MyDestRange
With MyCell
If Not IsEmpty(MyCell) Then
.Value = Replace(.Value, ".", ",", vbTextCompare)
.Value = .Value * 1#
End If
MyCell.NumberFormat = "General"
End With
Next MyCell -
Új hozzászólás Aktív témák
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4383, 100% Akkumulátor
- Apple iPhone 16 Pro 128GB Natural Titanium használt, karcmentes 90% akku 6 hónap garancia
- Használt számítógépek/merevlemezek számlával, garanciával! Ingyen Foxpost/PostaPont!
- 0perces DDR5 4800 vadiúj Ramaxel 2x12GB memória 1 év garancia
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


(Bár, lehet, hogy ez az írtókapa, mert azzal lehet kapálni is, meg ütni-verni is) 



![;]](http://cdn.rios.hu/dl/s/v1.gif)


0 értéket hoz mind az elvégzett munkánál, mind az alkatrésznél."

Fferi50