Hirdetés

2024. április 20., szombat

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.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.

Összefoglaló kinyitása ▼

Hozzászólások

(#35001) sztanozs válasza Delila_1 (#34997) üzenetére


sztanozs
veterán

Általánosságban lehet, hogy egy range selctor kellene és akkor lehetne használi azzal az öszes beépített függvényt:

Function SzinSzerint(mintacella As Range, tartomany As Range) As Range
Set SzinSzerint = Nothing
Dim CV As Object

For Each CV In tartomany.Cells
If CV.Interior.Color = mintacella.Interior.Color Then
If SzinSzerint Is Nothing Then
Set SzinSzerint = CV
Else
Set SzinSzerint = Application.Union(SzinSzerint, CV)
End If
End If
Next
End Function

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35002) sztanozs válasza sztanozs (#35001) üzenetére


sztanozs
veterán

Persze ennek is ugyanaz a baja, mint az Excel4 GET.CELL hívásnak - az újraszínezés nem generál change eseményt, így még a manuális (F9) Calculate sem számotatja újra az értéket, csak az Edit (F2) + Enter...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35003) Delila_1 válasza sztanozs (#35001) üzenetére


Delila_1
Topikgazda

Átlagolni kell az azonos hátterű cellák tartalmát.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35004) mayer.tamas


mayer.tamas
csendes tag

Sziasztok,

Egy talán egyszerű kérdéssel fordulnék hozzátok, remélem tudtok segíteni.

Van 2 táblázatom, melynek mind a kinézete, mind az oszlopai (elnevezésben is) megegyeznek egymással.
Tulajdonképpen a 2 táblázat egymás másolata, csak az adatok frissülnek az új másolatban.
Az egyik táblázat a reggeli állapotot adja vissza, a másik pedig a délutánit.

Napközben a táblázat sorai részben törlődnek, részben kiegészülnek új sorokkal.

A táblázatban vannak a sorok mögött megjegyzések, melyeket manuálisan viszek fel minden reggel annak függvényében, hogy az adott soron levő munka milyen fázisban van.

Délután mikor lehúzom a frissített listát, akkor lesz ami idő közben elkészült, így az nincs benne az új táblázatban, viszont lesz ami nem készült még el, az benne marad.

A reggeli táblázatban levő olyan sorok mögött levő megjegyzések, melyek nem lettek kész nap közben és megmaradtak és az új táblázatban is benne vannak, azokat szeretném átvenni valamilyen képlettel, jelenleg ezt manuálisan csinálom.

2 oszlop az amit figyelni kell, mely alapján lehetne egyértelműen azonosítani, hogy melyik sorról beszélünk.
Hibaszám és állomás.

Lenne esetleg ötlete valakinek, hogy milyen megoldással lehetne hivatkozni egyikről a másikra, hogy átvegye a megjegyzéseket és ne kelljen manuálisan átmásolgatnom?

Segítségeteket előre is kösznöm.

Üdv.

(#35005) Delila_1 válasza mayer.tamas (#35004) üzenetére


Delila_1
Topikgazda

Tulajdonképpen a 2. táblázatban azoknak a rekordoknak kell szerepelniük, amik kész vannak?

Ha igen, nem kell külön táblázat. Az elsőről készíts kimutatást, amiben szerepel az az oszlop, ami tartalmazza a megjegyzést. Ezt szűrheted aszerint, hogy kész van-e, vagy nincs.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35006) mayer.tamas válasza Delila_1 (#35005) üzenetére


mayer.tamas
csendes tag

Szia,

Próbálom leírni, hogy konkrétan mi most a folyamat.
Van egy saját helpdesk szoftverünk amiből a jelenleg nyitott hibákat kiexportálom excelbe.

Itt különböző makrókkal szerelői csoportokra szedem, illetve tervszerű munkákat külön válogatom.
Ezek 2 kattintással elkészülnek.

A táblázat minden esetben csak a nyitott hibákat tartalmazza.

Reggel lehúzok egy friss listát a hibákról és megcsinálom ezt a táblázatot, amit leegyeztetek a szerelőkkel, beütemezzük javításra (ezek kerülnek megjegyzésként a sorok végére)

Majd a nap végén megteszem újra ugyanezt ugyanezzel a táblázattal (előtte mentés másként új névvel), de előtte törlöm ezeket a megjegyzéseket és makróval újra szétszedem és frissítem az adatokat.

Ebben már lesznek változások a reggelihez képest, mert napközben jöttek újabb hibák és időközben el is készültek.

Tehát nem tudom egy az egyben visszatenni a megjegyzéseket, hanem soronként össze kell hasonlítanom a reggeli táblázat soraival és ott ahol egyezik a sor, átmásolom a megjegyzéseket.

Remélem így érthetőbb. :)

(#35007) sztanozs válasza Delila_1 (#35003) üzenetére


sztanozs
veterán

Értem - erre írtam, hogy egy ilyen általános formában, akár áltagra, akár bármi másra felhasználható:

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35008) Delila_1 válasza sztanozs (#35007) üzenetére


Delila_1
Topikgazda

Aha! :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35009) Delila_1 válasza mayer.tamas (#35006) üzenetére


Delila_1
Topikgazda

Lehet rá írni makrót, csak ahhoz ismerni kell a lapok felépítését.

Ma már semmiképp nem, de ha leírod, melyik oszlopokat kell összehasonlítani a 2 lapon, holnap megírom – feltéve, hogy addig nem kapsz választ.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35010) csferke


csferke
senior tag

Sziasztok!
A Macro ablakban miért különbözik a két macró elnevezése?

A rövidebb változat nekem tökéletesen megfelelne.

köszi

[ Szerkesztve ]

(#35011) Delila_1 válasza csferke (#35010) üzenetére


Delila_1
Topikgazda

F4-re bejön a Properties ablak, ahol át tudod nevezni az automatikusan Module1, ... Modulen modulokat.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35012) csferke válasza Delila_1 (#35011) üzenetére


csferke
senior tag

A Macro ablakban mindkettőnek a rövidebb változata volt látható.
A VBAProject-ben neveztem át mindkettőt. Modulexx => Név
Macro ablakban viszont mostmár egyik a rövidebb a másik a hosszabb névvel van. :F

[ Szerkesztve ]

(#35013) Fferi50 válasza csferke (#35012) üzenetére


Fferi50
őstag

Szia!

Szerintem azért van így, mert 2 munkafüzet és 2 projekt van nyitva. A rövidebb elnevezés az éppen aktuális projektben (aktív munkafüzetben) levő makrókat "illeti", a hosszabb - a munkafüzet ill. project nevével "kibővített", teljes név pedig a másikban levőt.
Hivatkozni és elindítani a nem aktív munkafüzetben levő makrót csak teljes névvel lehet. Ez rendszerszintű szabály.
Sőt, osztálymodulban levő makrót csak az osztálymodul nevével kibővítve tudsz elindítani az aktív munkafüzetben is.
Ez a szabály érvényes a változókra is.
Több információért nézd át lsz. a változók deklarálása és élettartama fejezetet, illetve a makrók meghívása, futtatása részt a HELP-ben.

Üdv.

(#35014) csferke válasza Fferi50 (#35013) üzenetére


csferke
senior tag

Szia,
csak 1 munkafüzet van nyitva.
Abban az 1-ben átneveztem (Modulexx => Név) és kétféle eredmény lett a Macro ablakban.

(#35015) Fferi50 válasza csferke (#35014) üzenetére


Fferi50
őstag

Szia!

A problémát az okozza, hogy a modul neve és a makró neve is ugyanaz. Most kipróbáltam. Ha a modult nevezem át előbb és utána írok bele ugyanolyan nevű makrót, akkor a makróablakban teljes névvel jelenik meg. Amikor előbb írom meg a makrót és utána nevezem át ugyanazon névre a modult, akkor a makró ablakban a rövid név látható. DE csak addig, amíg újabb modult nem adok hozzá. Ha bezárom a fájlt és újranyitom, akkor is a hosszú nevét látom.
A VBA-ban nem tiltott a rendszer által "foglalt" nevek használata, de ebben az esetben pontosan meg kell mondani (akár hosszú névvel is), hogy rendszer dologra, vagy saját - azonos nevű - dologra hivatkozunk.

Tehát esetedben a teendő: átnevezni vagy a makrót, vagy a modult.

Üdv..

[ Szerkesztve ]

(#35016) csferke válasza Fferi50 (#35015) üzenetére


csferke
senior tag

Mindkét esetben így volt ModulNeve = MacroNeve és a Macro ablakban kétfélekép jelent meg.

:K
Viszont kipróbáltam ezt, ModulNeve = mMacroNeve és így már nem tesz hozzá semmit.

Köszi mindkettőtöknek

[ Szerkesztve ]

(#35017) Hun91FaTe válasza Delila_1 (#30058) üzenetére


Hun91FaTe
csendes tag

Ezzel kapcsolatban lenne még egy kérdésem, hogy valahogy meg lehet azt csinálni, hogy ha alkalmazom a képletet, a cellában fixen írja bele az eredményt, ne változzon többet. Ez azért is fontos lenne, mert után arra a cellára hivatkozva számoltatnék tovább, ahol ugyanúgy hibát dob. Köszi előre is! :)

(#35018) batmanéhes


batmanéhes
tag

üdv. van egy named range-em definiálva:

=INDEX(resources!$E$43:$E$48;MATCH(resources!$C43;resources!$D$43:$D$48;0))

ez 1 cellát ad vissza. a célom, hogy ezt az értéket, illetve e mellett 0-t is ki tudjon választani gizike a data validationban.

arra nincs lehetőségem, hogy a 0-kat minden esetben az index által visszaadott cella mellé tegyem, azaz nem tudok összefüggő ranget csinálni.

mindeddig nem sikerült a data validation listbe az =namedrange mellé további listaelemet felvenni.

ha van valakinek ötlete, megköszönöm.

(#35019) sztanozs válasza batmanéhes (#35018) üzenetére


sztanozs
veterán

Nem egészen sikerült megértenem, hogy mit szeretnél (lehet, hogy csak a cukorsokk miatt) - tudnál valami vizuális segédletet adni, hogy mit szeretnél?

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35020) sztanozs válasza sztanozs (#35019) üzenetére


sztanozs
veterán

De ahogy nézem elsőre nem tűnik megoldhatónak (hacsak nem VBA-val gyártod le a listát):
You may not use unions, intersections, or array constants for Data Validation Criteria.
The list source must be a delimited list, or a reference to a single row or column.

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35021) batmanéhes válasza sztanozs (#35019) üzenetére


batmanéhes
tag

egy olyan data validation lenyíló listát, amiben egyrészt 0, másrészt egy dinamikusan, függvény által visszaadott érték szerepel.

olyasmit képzelj el, mint egy dinamikusan képzett data validation lista (amikor nem fixen adsz meg tartományt, hogy ne legyenek üres sorok a lenyílóban pl.). nekem az a bajom, hogy nem tudok egy egybefüggő tartományt képezni. illetve worst case tudnék, csak elég randa ügy lenne.

a vizuálás nem sokat dobna a legelső mondatban megfogalmazotton. d emegpróbálom egyszerű példával:

data validation --> list --> a validation list meg valahogy így nézne ki: =IF(A2=1;1;0) ; "valami" ; "valamimás"

ez a " ; " szintax ugye nem működik, mert úgy néz ki vagy minden listaelem szöveg, vagy egy függvény.

(#35022) sztanozs válasza batmanéhes (#35021) üzenetére


sztanozs
veterán

Igen, erre írtam, hogy szerintem csak VBA-val tudod megcsinálni, mert nem tudsz egybefüggő elemeket alkotni.
Mondjuk így végiggondolva megoldható, csak kell egy rejtett sheet, aminek az első eleme egy 0, utána pedig mondjuk ~100 elem, ami egy Tömbfüggvénnyel van feltöltve a named-ranged-del, így:
.
A
1 '0
2 {=ValidationList}
3 {=ValidationList}
4 {=ValidationList}
...
99 {=ValidationList}

A ValidationExtended Named Range meg így néz ki:
=OFFSET(hiddensheet!$A$1,0,0,COUNTIF(hiddensheet!$A$1:$A$99,">'"),1)

Fontos viszont, hogy a calculation ne legyen kikapcsolva... :U

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#35023) pigster válasza batmanéhes (#35021) üzenetére


pigster
senior tag

Ilyet akarsz?

FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

(#35024) batmanéhes válasza pigster (#35023) üzenetére


batmanéhes
tag

igen, így ránézésre igen. mi van a validationben?

(#35025) Mentavirág


Mentavirág
újonc

Sziasztok! Egy olyan kérdésem lenne, hogy van-e lehetőség az adatok tömeges cseréjére az Excelben, úgy, hogy több számot egyszerre ugyanarra az információra cserélek ki?
Van egy munkalapom, amin rendelések szerepelnek: az első oszlopban az adott megrendelő azonosítója, a mellette levő oszlopokban pedig hogy melyik (hányadik) napokon rendelt.
Ezeket szeretném egységesíteni, mert csak arra lennék kíváncsi, hogy az illető milyen napon (hétfő/kedd/stb.) adta le a rendelését. Elsőként arra gondoltam, hogy egy másik munkalapra készítek egy táblázatot, amiben minden szám mellett szerepel, hogy az milyen nap (pl. 434. nap = szerda), de sajnos nem találok függvényt amivel ki tudnám cserélni az adatokat. Valakinek van esetleg valamilyen ötlete erre? :)
(2016-os Excelt használok.)

[ Szerkesztve ]

(#35026) Fferi50 válasza Mentavirág (#35025) üzenetére


Fferi50
őstag

Szia!

Próbáld ki az alábbit:

=VÁLASZT(HÉT.NAPJA(MA();2);"HÉTFŐ";"KEDD";"SZERDA";"CSÜTÖRTÖK";"PÉNTEK";"SZOMBAT";"VASÁRNAP")

A MA() függvény helyére írod az adott cella címét, amelyik a dátumot tartalmazza.
A hanyadik napot nem egészen értem, az év elejétől eltelt napot tartalmazza, nem pedig az adott dátumot? Mondjuk a 434. nap elég érdekes szám...

Üdv.

[ Szerkesztve ]

(#35027) logitechh


logitechh
csendes tag

Sziasztok köszöntök mindenkit!
Most ismerkedem a makrókkal és lenne egy pár kérdésem:
Már sikerült összehoznom egy makrót az irányított beillesztésre de szeretném összefűzni, a makró indítás után megkeresse a B oszlopban az utolsó adatot tartalmazó sort. Majd az egyel alatta lévő sorra álljon a kurzor és oda irányított beillesztéssel illessze be a vágó lapon lévő adatot 4 oszlopnyi adatot.
Aztán az A oszlopon ismételten keresse meg az utolsó adatot tartalmazó cellát és alatta mindig növelje 1 el az értéket( kvázi sorszámot generáljon.
Végül az egész táblázatot jelölje ki(próbáltam makró rögzítővel a CTRL+A billentyű parancsot felvenni de csak annyit rakott be amekkora a táblázat)mert utána a formáznám a szegélyt.

Remélem érthetően írtam és tudtok segíteni
Köszönöm szépen

[ Szerkesztve ]

(#35028) poffsoft válasza logitechh (#35027) üzenetére


poffsoft
addikt

Ha már egyszer megtaláltad az utolsó sort, minden adatod meglesz:
Cells(usor, 1)=cells(usor-1, 1)+1
Az irányított beillesztéshez a cells(usor, 2).select kell, utána jöhet a makrórógzítőből a pastespecial.
A táblázatod pl. a range(cells(2, 1), cells(usor, 12)) lesz...

[ Szerkesztve ]

[ Szerkesztve ]

(#35029) logitechh válasza poffsoft (#35028) üzenetére


logitechh
csendes tag

Hali
ebből semmit nem vágok
Sub iranyitott_beillesztes()
'
' iranyitott_beillesztes_ Makró
'

'

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

ebben a történetben hol szerepel a te általad leírt dolog
Rengeteg makrót találtam ami megadj az utolsó sor számát de azt nem tudom elérni hogy a B oszlop utolsó üre sorába áljon a kurzor vagyis hogy onnan kezdődjön a beillesztés

(#35030) mdk01 válasza Delila_1 (#34958) üzenetére


mdk01
addikt

Megcsináltam, hogy a fülek tartalmát egyenként áthelyeztem egy új táblázatba, és a 21Mb helyett most 554Kb.
Ez így már lényesen jobban néz ki.
Köszönöm a segítséged.

Arra van még tipped mi lehetett az ok?

(#35031) poffsoft


poffsoft
addikt

.

[ Szerkesztve ]

[ Szerkesztve ]

(#35032) poffsoft válasza logitechh (#35029) üzenetére


poffsoft
addikt

Sub iranyitott_beillesztes()
'
' iranyitott_beillesztes_ Makró
'
'
Dim usor As Long

usor = Range("A" & Rows.Count).End(xlUp).Row +1

Cells(usor, 1)=Cells(usor-1, 1)+1

Cells(usor, 2).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range(Cells(2, 1), Cells(usor, 12)).Select
'
' itt jöhet a szegélyezés
'
Cells(usor, 1).Select

End Sub

[ Szerkesztve ]

[ Szerkesztve ]

(#35033) poffsoft válasza poffsoft (#35032) üzenetére


poffsoft
addikt

Vagy egyszerűbben:

Sub iranyitott_beillesztes()
'
' iranyitott_beillesztes_ Makró
'
'
Dim usor As Long

usor = Range("A" & Rows.Count).End(xlUp).Row +1

Cells(usor, 1)=Cells(usor-1, 1)+1

Cells(usor, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range(Cells(2, 1), Cells(usor, 12)).Select
'
' itt jöhet a szegélyezés
'
Cells(usor, 1).Select

End Sub

[ Szerkesztve ]

(#35034) Delila_1 válasza logitechh (#35027) üzenetére


Delila_1
Topikgazda

Sub mm()
Dim usor As Long

usor = Range("B" & Rows.Count).End(xlUp).Row + 1

'ide jön a "4 oszlopnyi adat" másolása, például
'range("B" & usor-1 & ":E" & usor-1).copy
'Fontos, hogy az irányított beillesztés előtt legyen Copy parancs

Range("B" & usor).PasteSpecial xlPasteValues

usor = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & usor) = Range("A" & usor - 1) + 1
End Sub

A keretezéshez a tartomány kijelölése

Range("A1").CurrentRegion.Select

Még a select sem szükséges.

With Range("A1").CurrentRegion
.BorderAround LineStyle:=xlContinuous, Weight:=xlMedium
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
End With

Ez a makró körbe vastagabb, belül véknyabb szegélyt ad a tartományodnak.

[ 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.

(#35035) logitechh válasza poffsoft (#35032) üzenetére


logitechh
csendes tag

Kösszi neked is és Dellila_1-nek is(az övére nem tudok válaszolni mert azt írja ki,hogy várjak türelemmel amíg valaki válaszol a hozzászólásomra)
úgy látom két részre kell szednem a beillesztést és a sorszámozást mert valamiért mindig csak egyel növeli a sorszámot függetlenül hogy hány sornyi adatot illesztek be.Ez mind a kettőtök makrójánál fent áll.
De baromira megkönnyítettétek a munkám.

[ Szerkesztve ]

(#35036) poffsoft válasza logitechh (#35035) üzenetére


poffsoft
addikt

Azt nem mondtad, hogy több sor is.

Sub mm()
Dim usor As Long
Dim i As Integer

usor = Range("B" & Rows.Count).End(xlUp).Row + 1

'ide jön a "4 oszlopnyi adat" másolása, például
'range("B" & usor-1 & ":E" & usor-1).copy
'Fontos, hogy az irányított beillesztés előtt legyen Copy parancs

Range("B" & usor).PasteSpecial xlPasteValues
For i = Range("A" & Rows.Count).End(xlUp).Row to Range("B" & Rows.Count).End(xlUp).Row
Range("A" & i) = Range("A" & i - 1) + 1
Next i

End Sub

[ Szerkesztve ]

[ Szerkesztve ]

(#35037) Delila_1 válasza logitechh (#35035) üzenetére


Delila_1
Topikgazda

Itt válaszoltam, közel 1 órával a hozzászólásod előtt.

Melyik területre illesztesz be "oszlopokat", és ezt hogy érted? Pl. a B12:M20 tartományba? A sorszámok ekkor az A12:A20 tartományba kellenek, folytatva az A11 értékétől?

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35038) Mentavirág válasza Fferi50 (#35026) üzenetére


Mentavirág
újonc

Köszönöm a választ! Sajnos nincs konkrét dátum, csak adott napok, és annyit tudni, hogy az 1. nap hétfő volt. Maga a munkalap így néz ki:

Ebben szeretném kicserélni a számokat arra, hogy hétfő, kedd stb.
A másik táblázat, amit készítettem hozzá, így néz ki (az eleje):

Arra gondoltam, hogy valahogy ez alapján szeretném kicserélni tömegesen a számokat a másik munkalapon, de nem tudom, hogy erre van-e lehetőségem Excelben? :B

(#35039) logitechh válasza Delila_1 (#35037) üzenetére


logitechh
csendes tag

Hali!
Nem tudom miért írta ki azt hogy várjak türelemmel de majd legközelebb kifotózom. de az volt a furi hogy senki más hozzászólására nem tudtam reagálni.
Tehát küldik ezt a munkalapot:

majd én ebből kiásolom amit kell Coszloptól F oszlopig .
erre már megcsináltam a makrót hogy szűr és másol.
Az innen kimásolt értékeket illesztem be ide:

B oszloptól az E oszlopig . Ez lehet egyszerre akár 50 sor is de ez változó.
Majd az F oszloptól az L oszlopig az újjonan beillesztett sorokba szeretném lemásolni a képleteket:
csak erre szeretnék makrót mert amit makrórögzítővel veszek fel és módosítok mindig csak egy sort sikerül másolni és beilleszteni.És ha mondjuk 45 sort illesztek be az B oszloptól F oszlopig akkor ugyan úgy 45 sorba kellene beilleszteni a képleteket

Ezután szeretném az A oszlopot sorszámozni.
a keretezés az már megvan ahogy a Delila_1 megmutatta.

Na ismét szerettem volna írni valamit és ez fogadott:

[ Szerkesztve ]

(#35040) poffsoft válasza logitechh (#35039) üzenetére


poffsoft
addikt

egyszerűbb lett volna az elején elmondanod, mik vannak.

Sub mm()
Dim Asor As Long
Dim Bsor As Long
Dim i As Integer

Asor = Range("A" & Rows.Count).End(xlUp).Row + 1

Range("B" & Asor).PasteSpecial xlPasteValues

Bsor = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("F2:L2").Copy destination:=Range("F" & Asor &":F" & Bsor)

For i = Asor To Bsor
Range("A" & i) = Range("A" & i - 1) + 1
Next i

End Sub

Szerintem a rangod miatt nem enged válaszolni...

[ Szerkesztve ]

[ Szerkesztve ]

(#35041) Fferi50 válasza Mentavirág (#35038) üzenetére


Fferi50
őstag

Szia!

Ha jól értettem a válaszod, vagyis az első nap (induló nap) hétfő volt, akkor a 7-tel való osztás maradéka adja meg a nap nevét:
=VÁLASZT(MARADÉK(B2;7)+1;"VASÁRNAP";"HÉTFŐ";"KEDD";"SZERDA";"CSÜTÖRTÖK";"PÉNTEK";"SZOMBAT")

Üdv.

(#35042) Delila_1 válasza Mentavirág (#35038) üzenetére


Delila_1
Topikgazda

Az Egyéni listák-ban (elérése az Excel beállításai | Népszerű elemek | Egyéni listák szerkesztése) eleve szerepel a H, K Sze, Cs, P, Szo, V lista. Az első cellába beírod a H-t, majd lehúzod.

Még lehúzni sem kell, mivel mellette balra kitöltött cellák vannak az oszlopban. A H beírása után a cella
jobb alsó sarkában lévő kis fekete négyzeten duplaklikk végig megadja a napokat.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35043) kezdosql


kezdosql
tag

Excel hibakezelesben illetve adatvisszaallitasban van valakinek tapasztalata?

Egy excel fajlt - kb. 3 mb, 4 kulonallo lapbol allo munkafuzet - pendrajvon visznek PC-rol PC-re, mindenki beirja a sajat adatat es megnezi a tobbiek uj beirasait.
Ma reggel minden peldanya - mindharom pc-n es a pendrajvon levo is - kozolte, hogy nem teljesen olvashato a fajl, javitani kell.
A javitast engedelyeztem, mindenhol ugyan az az uzenet jott, hogy az adatvisszallitas sikerult, de adatvesztes lehet. Felajanlott egy linket, hogy reszletesen meg lehet nezni a hibakat, de az ie cask egy xml fajlt nyitott meg, ahol beture ugyan ez a szoveg volt olvashato.

Mindharom helyen azt lattam, hogy a datum mezok altalanos mezokre valtoztak es otjegyu szamok jelentek meg, visszaallitottam datum tipusra, es latszolag minden rendben volt. A biztonsag kedveert uj fajlkent elmentettem oket. Ekkor kiderult, hogy 100kb es 250 kb meretbeli kulonbseg van a fajlok kozott.

Mind a negy lapon 2-3 ezer sorbol es 10-40 oszlopbol allo tablazat van, igy teteles osszehasonlitas csak ugy menne, ha mindent kinyomtatnank es osszepipalnank, az is napokig tartana. :(

Hogyan lehet megtudni, milyen hibakat talalt es milyen cellakat modositott a program?

(#35044) logitechh válasza poffsoft (#35040) üzenetére


logitechh
csendes tag

:C :C :C :C :C
Köszönöm a segítséget
nagyok vagytok :DD :DD :DD :DD

(#35045) Delila_1 válasza kezdosql (#35043) üzenetére


Delila_1
Topikgazda

Nyiss egy új füzetet, amibe bemásolod a régi, és a javított fájl 1-1 lapját. A harmadik, üres lapon az A1-be írd be:

=EgyikLap!A1=MásikLap!A1

Természetesen a lapok igazi neve szerepeljen. A képletet húzd jobbra a kitöltött oszlopok szélességéig, és le, az utolsó sorig. Az egyezésnél IGAZ, az eltérésnél HAMIS értéket kapsz.

Jöhet a következő két lap összehasonlítása.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35046) logitechh válasza poffsoft (#35040) üzenetére


logitechh
csendes tag

Picit finomítani kellett mert az A oszlopban és az F:L tartományban egyel túlfutott a másolás
Köszi mindenkinek
felteszem a kódot hátha valaki más is hasznát veszi
Sub beillesztes()
'
' előre másik munkalapból kimásolt 4 oszlop szélességü tartományt beilleszt a B oszlop első üres sorától kezdve a B oszloptól az E oszlopig majd az A oszlopot kitölti sorszámmal illetve az F oszloptól az L oszlopig az F2:L2 tartomány képleteit másolja be addig a sorig ameddig a B oszlop tartalmaz elemet
'

Dim Asor As Long
Dim Bsor As Long
Dim i As Integer

Asor = Range("A" & Rows.Count).End(xlUp).Row + 1

Range("B" & Asor).PasteSpecial xlPasteValues

Bsor = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("F2:L2").Copy Destination:=Range("F" & Asor & ":F" & Bsor - 1) 'a végén a -1 azt jelzi hogy nem az utlsó kitöltött sor plusz egy sorba másolja a képletet hanem csak az utolsó sorig

For i = Asor To Bsor - 1 'számláló rész a Bsor esetén plusz egy sort beszámoz viszont ha csak a kitöltött celláig akarunk számozni akkor a-1 kell
Range("A" & i) = Range("A" & i - 1) + 1
Next i

'innen kezdődik a keretezés
Range("A1").CurrentRegion.Select 'CTRL+a kijelöli a teljes táblázatot
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub

Bár nam biztos hogy szabad ennyi mindent összefűzni de szerintem így tökéletes

[ Szerkesztve ]

(#35047) Delila_1 válasza logitechh (#35046) üzenetére


Delila_1
Topikgazda

A keretezéshez célszerűbb ez a rövid változat. Az Around egyszerre határozza meg a bal, jobb, alsó és felső keret paramétereit.

With Range("A1").CurrentRegion
.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
End With

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#35048) DasBoot


DasBoot
aktív tag

Szép napot, Mindenkinek! Azt kérdezném, hogy létezik-e olyan betűtipus, ami olyan, mint a hétszegmenses kijelzők. MSExcel-ben cellákban szeretnék csak számokat megjeleníteni egy külső eszközből származó időzítőből. Üdv.: Joe

[ Szerkesztve ]

LEGO-ból bármit megépíteni, csak idő kérdése.

(#35049) logitechh válasza Delila_1 (#35047) üzenetére


logitechh
csendes tag

Köszi!
Igazad van.
Így átláthatóbb lett.

(#35050) tgumis válasza DasBoot (#35048) üzenetére


tgumis
tag

innen tudsz leszedni
pl.:
[link]

[ Szerkesztve ]

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.