Kezdőlap › Fórumok › Excel témák › [Resolved] Tördelt sorok száma egyesített cellában
- This topic has 15 hozzászólás, 3 résztvevő, and was last updated 1 year, 7 months telt el by Adri0324.
-
SzerzőBejegyzés
-
2023-05-25-16:03 #9922
Az lenne a kérdésem, létezik e valamilyen módszer arra, hogy megszámoljuk egy összevont cellában hány sor adat található? Van egy adatlapunk, aminek az egyik cellájában sok adatot kell tárolni, de mivel összevont cella, a sortörés után sem állítja be a sor magasságát. Valamilyen egyszerű módszerrel meg kéne számolnom, hogy hány sor lett.
2023-05-26-07:13 #9923Szia
Szerintem a legegyszerűbb módszer, hogy a sortöréseket megszámolni, és hozzáadni 1-et. A sortörés karaktere hexadecimálisan „0A”. Ha ezt meg lehetne számolni, akkor hozzáadni egyet, és kész is.
Nem tudom, hogy ezt hogyan lehet megszámolni, tehát amit találtam megoldásnak:
másolatot csinálsz a cellából, és kitörölsz minden látható és nem látható karaktert (betűk, számok, írásjelek, space, stb). Utána csak a sortörés karakter marad benne, amit a „=hossz” függvénnyel meg lehet számolni. Az összes karaktert meg a reguláris kifejezéssel lehet egyszerre kitörölni (keresés és csere) „|” karakter segítségével így:
a|b|c| |A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|0|1|2|3|4|5|6|7|8|9|!|,|:|.|;2023-05-26-11:33 #9924Szia.
Köszi szépen, ez nagyon jó, valószínűleg meg is oldja a problémánkat, de a csere azon a módon nem működik, ahogy írtad. Ha beírjuk a karaktereket „|” karakterrel ahogy a példában írtad, hibaüzenetet küld. Egyesével megcsinálta, működik is. de ez nem sikerül, hogy az összes karaktert cseréljük. Erre van ötleted? Azt írja, hogy nem található cserélendő adat. Néha pedig azt, hogy nem találjuk amit keres.
Köszönöm a segítséget.2023-05-30-00:15 #9925Szia Adri0324!
…enFeri alapötletéből elindulva…
A sortörés karaktere a nem nyomtatható karakterek közé tartozik. A nem nyomtatható karakterek eltávolítására létezik egy függvény. Tisztít()
Ha nincs a cellában más nem nyomtatható karakter(a szóköz nem számít annak), akkor ezzel a képlettel megszámlálhatod a sortöréseket: =Hossz(szöveg)-Hossz(Tisztít(szöveg))üdvözlettel
verax- A hozzászólás módosításra került: 1 year, 7 months telt el-verax.
2023-05-30-13:20 #9927Sziasztok!
eNFeri és verax! nagyon köszönöm!
A kettőtök válasza együtt a tökéletes megoldás.
eNFeri köszi, így már meg tudjuk számolni a sortöréseket, és verax köszi, így el tudjuk távolítani a többi karaktert.
Szóval a kettő együtt működik. Még egyszer köszi. 🙂Üdv! Adri
2023-05-30-18:47 #9931Szívesen… azonban
A sormagasság beállítása munkalap esemény, ezért hiába számoltatnád ki az optimális megjelenítéshez szükséges sorok számát. Ettől még nem történne semmi érdemi változás. Kódolni kell. Ha pedig kódolsz, akkor arra az esetre léteznek megoldások.
Én játszottam egy kicsit. Nem állítom, hogy hibátlan, de legalább lehet tanulni a hibáimból. 😉üdvözlettel
verax2023-05-30-18:49 #99322023-05-31-16:15 #9939Kedves verax!
Megírtad helyettem a makrót! 🙂 Nagyon köszi. 😀 Így lehet haladni a munkával. 😀
Még egyszer köszönöm a sok segítséget.
2023-06-01-13:07 #9940Kedves verax!
Segítenél még egy makró kérdésben?
Azt szeretném, ha a makró egy adott tábla végére beszúrna sorokat (eddig megy nekem is), de úgy, hogy egy cellában lévő szám legyen a beszúrt sorok száma. Ez a szám változni fog, a makró mindig annyit kell beszúrjon, amilyen szám van az adott cellában. ű
Mitől tud lefutni a makró? Az megoldható, hogy a mentéskor lefusson? Vagy ha az adott cella értéke nagyobb mint „0”? Ezt tudja folyamatosan figyelni? De ha nem, akkor jó úgy is, ha mentéskor fut le.Nagyon köszönöm, ha segítesz.
2023-06-02-02:06 #9942Kedves Adri!
Tábla végére beszúrni sorokat? Ott eleve vannak sorok. Tudnál egy példa fájlt mellékelni? Kézzel elkészíted az előtte – utána állapotokat és akkor már látjuk, hogy mit is kellene automatizálni.
(Egyébként a makró rögzítés lehetőséget használva , majd a létrejött kódot elemezve sok tapasztalatot lehet szerezni.)Az előre meghatározott mennyiségű sor beszúrására két lehetőség is kínálkozik. ÉS hogy mitől tud lefutni az utasítás? Kattintásra, munkalap eseményre (változásra) vagy ahogy magad is sejted, akár kilépéskor.
üdvözlettel
verax2023-06-02-02:24 #9943Kedves Adri!
Tábla végére beszúrni sorokat? Ott eleve vannak sorok. Tudnál egy példa fájlt mellékelni? Kézzel elkészíted az előtte – utána állapotokat és akkor már látjuk, hogy mit is kellene automatizálni.
(Egyébként a makró rögzítés lehetőséget használva , majd a létrejött kódot elemezve sok tapasztalatot lehet szerezni.)
Táblázatként formázott adattárolásban gondolkodtál már? Azzal a megoldással egy újabb adat felvitelekor automatikusa bővül a kezelt tartomány.Az előre meghatározott mennyiségű sor beszúrására két lehetőség is kínálkozik. ÉS hogy mitől tud lefutni az utasítás? Kattintásra, munkalap eseményre (változásra) vagy ahogy magad is sejted, akár kilépéskor.
üdvözlettel
verax2023-06-02-15:00 #9944Kedves Verax!
Mutatom a konkrét feladatot…. a csatolt táblázatban a nyers export fülbe kerülnek a programunkból kinyert adatok, ez állandóan változó hosszúságú táblázat lesz.
A soreltérés fülben az ID export oszlopba bekerülnek az azonosítók. Pontosan annyi, ahány sora van a nyers exportnak.
Az állapot fülbe szintén bekerülnek a nyers exportban lévő azonosítók. Majd az állapot fülben az ID oszlopok értékét átmásoljuk az ID érték oszlopba, mely adatok vissza kerülnek a soreltérés fül ID Állapot oszlopába. Az lenne a makró feladata, hogy a soreltérés fülön megvizsgálja a hiány oszlop végösszegét, majd az állapot fül táblázatának a végére beszúrjon annyi sort, amilyen értéket ott talált, ezután pedig az állapot oszlopból az összes értéket beillessze az ID Érték oszlopba. (tehát a képletet ne). Az lenne a legjobb, ha a makró akkor futna le, ha a soreltérés fül hiány oszlopának végösszege nagyobb, mint nulla. Remélem érthető voltam…:) Ha ez nem kivitelezhető, akkor az is jó lenne, ha minden mentéskor lefutna. Csak rövid ideje próbálkozom a makrózással, ezt még nem tudom megoldani sajnos. Nagyon megköszönném, ha segítenél.Attachments:
You must be logged in to view attached files.2023-06-03-01:21 #9946Kedves Adri!
Mellékeltem egy lehetséges megoldást. Nézegesd!
üdvözlettel
veraxAttachments:
You must be logged in to view attached files.2023-06-06-14:21 #9950Kedves Verax!
Szuper, nagyon köszönöm. Majdnem tökéletes, de az érték oszlopot azért kell beszúrni, hogy a soreltérés végül 0 legyen (Miután lefutott a makró.) De ezt már meg is oldottam, köszönöm. Kicsit átalakítottam ezt-azt, így már majdnem tökéletes….
Még egy feladat merült fel ezzel kapcsolatban… Azt hogy tudom megoldani, hogy utolsó lépésként ha az állapot fülben az ID (Érték) oszlopban talál 0-át, azt az egész sort törölje. Tehát, ha a makró lefut, de közben nem több lett a sor a nyers exportban hanem kevesebb, akkor az üres sorokat törölje az állapot fülből.Üdv!
Adri
2023-06-07-03:21 #9955Szia Adri
Abból, amit írtál azt feltételezem, hogy az „Állapot” munkalap „D” oszlopából hiányoznak olykor az ID (érték) adatok. A „C” oszlop mindig tartalmazza a „Nyers export” munkalap „D” oszlopának PLU azonosítóit. Így tehát „C” oszlopot segítségül hívva megállapíthatjuk utolsó, még adatot tartalmazó celláját és ebből az értékből indulva egy egyszerű, de praktikusan visszafelé haladó ciklussal végig lehet lépkedni a 2. sorig. Közben pedig minden körben megvizsgáljuk az azonos (i-edik) sorban, de a „D” oszlopban lévő cella értékét. Ha ez üres vagy nulla értékű, akkor töröljük az aktuális sort. Valami ilyesféleképpen:
Sub ÜresIDÉrtékSorokTörlése () dim i, utolsóSor as Integer utolsóSor = WorksheetFunction.CountA(Range("C:C")) For i=utolsóSor to 2 step -1 If Cells(i, 4)=0 Then Rows(i & ":" & i).Select Selection.Delete Shift:=xlUp End If Next i End sub
Na persze, … a makró futása előtt (vagy a futás elején) gondoskodni kell arról, hogy a soron következő utasítások az „Állapot” munkalapon hajtódjanak végre. Egy ügyesen elhelyezett
Worksheets("Állapot").Select
parancs éppen megfelelő erre a célra.
üdvözlettel
verax2023-06-07-11:52 #9960Kedves Verax,
nem tudok elég hálás lenni a sok segítségért.
Úgy tűnik elkészült ez a feladat is. Sikerült úgy átalakítanom, hogy egy makró leköveti a nyers export minden változását és hozzá alakítja a többi munkafüzetet.
Akár több adatról akár kevesebbről van szó, szépen beszúrja és törli a sorokat, másolja a cellákat. Még sokszor fogom elemezni amit küldtél, igyekszem tanulni belőle. 🙂Még egyszer nagyon köszönöm
Üdv
Adri
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.