Keresés

Részletes keresés

Sheeny Creative Commons License 2025.05.11 0 0 38572

@Garashan: Esetleg ebben a sorban lehet a hiba ?:  tortresz = CLng(Split(szam, tizedesjel)(1)) / Application.WorksheetFunction.Power(10, Len(Split(szam, tizedesjel)(1)) - 2)

Előzmény: Sheeny (38561)
bé.laci Creative Commons License 2025.05.11 0 0 38571

Thx. Ha lesz tovább kérdésem már a szaktopikban teszem fel, elnézést az OFF-ért.

m54-b Creative Commons License 2025.05.11 0 1 38570

Mivel ritkán használod a Wordöt

 

Előzmény: m54-b (38569)
m54-b Creative Commons License 2025.05.11 0 1 38569

 

Kép nagyban.

 

Ez a 2007-es Officeban van, az újabbakban is hasonló.

Beállítod a megfelelő hasábokat, mindegyikbe teszel egy hasábtörést, és a kész szöveget beilleszted a megfelelő hasábba, a hasábtörés elé.

Előzmény: bé.laci (38568)
bé.laci Creative Commons License 2025.05.11 0 0 38568

Önéletrajban oldalra szeretnék kiírni ajánlásokat. Mondjuk lehet, hogy szövegdobozzal jobb lenne. Word-ben nem nagyon szoktam dolgozni, csak Excelben

 

Ugye két oldalas lenen az önéletrajz, és az ajánlások a szélen lennének. Legalábbis ez a nagy ötletem.

Előzmény: m54-b (38566)
bé.laci Creative Commons License 2025.05.11 0 0 38567

Kettő lenne. Egy fő hasáb és egy mellék hasáb.

Előzmény: Fferenc50 (38565)
m54-b Creative Commons License 2025.05.11 0 0 38566

Van Word topik: Word problémák

 

"Lehetséges hasábokat úgy beállítani, hogy a képen látható módon/sorrendben lehessen bevinni a tartalmat?"

 

Nem. Én nem ismerek ilyen lehetőséget. Utólag meg lehet faragni. (Létezik a hasábtörés, aztán úgy rakod be a szöveget, ahogy akarod.) A szövegdoboz nem tudja, nem tördel automatikusan, több oldalas doku esetén csak a problémák számát növeli.

 

Kiadványszerkesztő programokat nézzél.

 

(Biztos, hogy ez kell neked? Összehajtós valamit akarsz? Akkor még ott a gond, hogy a 2-es hasáb a lap hátoldalára kell kerüljön.)

Előzmény: bé.laci (38562)
Fferenc50 Creative Commons License 2025.05.11 0 0 38565

Szia!

Tulajdonképpen hány hasáb van akkor egy oldalon?

Üdv.

Előzmény: bé.laci (38562)
Fferenc50 Creative Commons License 2025.05.11 0 0 38564

Szia!

"ha új sort szúrtam be a meglévőek közé, akkor az address hiába $16:$16 volt, a target.column=1 értéket vett fel.

Ebben az esetben viszont a target.value <> "" hibát adott, mert nem tudta értelmezni azt. Ezért ellenőriztem, hogy az address tartalmaz-e $A$ részt és ne tartalmazzon se vesszőt (több cella/tartomány nem összefüggő kijelölése), se kettőspontot (tartomány kijelölése)."

 Szerintem ellenőrizni lehet, hogy a Target celláinak száma (vagyis a kijelölés) mennyi, ha nem egy, akkor nem kell semmit tenni, max üzenetet. Egyébként beszúráskor a cella értéke nagyon nagy eséllyel üres lesz.

Üdv.

Előzmény: Garashan (38563)
Garashan Creative Commons License 2025.05.11 0 0 38563

Azért oldottam meg ilyen kacifántosan, mert ha új sort szúrtam be a meglévőek közé, akkor az address hiába $16:$16 volt, a target.column=1 értéket vett fel.

Ebben az esetben viszont a target.value <> "" hibát adott, mert nem tudta értelmezni azt. Ezért ellenőriztem, hogy az address tartalmaz-e $A$ részt és ne tartalmazzon se vesszőt (több cella/tartomány nem összefüggő kijelölése), se kettőspontot (tartomány kijelölése).

 

A saját gépemen amúgy szépen működött a kód, létrehozta mindig a "Minta" fül alapján az új füleket. Amire gondolni tudok, hogy én egyszerű, rövid termék neveket használtam (A, B, C, D). Lehet ha túl hosszú egy terméknév, akkor az problémát okoz.

 

Ezt ki lehetne próbálni, hogy az első ha függvény után beírjuk, hogy msgbox "teszt" . Így kiderülne, hogy egyáltalán nála jól ellenőrzi-e a tartományt, ahol le kell futnia a kódnak.

Előzmény: Fferenc50 (38560)
bé.laci Creative Commons License 2025.05.11 -1 0 38562

Sziasztok! Egy Word-ös kérdést szeretnék föltenni, mivel nem látok neki külön topikot.

 

Lehetséges hasábokat úgy beállítani, hogy a képen látható módon/sorrendben lehessen bevinni a tartalmat? Vagyis először a baloldali oszlopok legyenek tele, és a jobb oldaliak csak ezután, vagy külön.

 

Vagy ezt máshogy kell, pl. szövegdobozzal?

 

Sheeny Creative Commons License 2025.05.10 0 0 38561

Tudnál még segíteni, lehet, hogy csak egy kerekítést kell kivenni valahonnan, de nem merek belenyúlni :)

Szóval az a probléma, hogy pl 999,99-et írok be akkor azt írja ki a szöveg, hogy: egyezer egész kilencvenkilenc század, ami nyilvánvalóan nem jó.

(a tizedes vessző után jó a kiírás, de a példában a 999-et úgy tűnik, hogy felkerekíti, És minden esetben kerekíti az egész számot, ha két tizedesjegyig meg van adva szám.)

Az lenne a cél, hogy pontosan azt a számot írja ki, amit számmal is beírtam, nem szükséges a kerekítés sehol (kifizetések miatt kell pontosnak lennie).

Köszönöm

Előzmény: Garashan (38548)
Fferenc50 Creative Commons License 2025.05.10 0 0 38560

Szia!

Nem lenne egyszerűbb első korben megnézni, hogy Target.Column=1, utána a többit?

Ez szerintem javítaná Andyy által jelzett hibát is.

Üdv.

Előzmény: Garashan (38558)
Andyyy42 Creative Commons License 2025.05.10 0 0 38559

Szia,

 

Köszi!

Az ugrás működik, de az új fül létrehozása, ha egy új terméknév bekerül a listába vmiért nem :(

Előzmény: Garashan (38558)
Garashan Creative Commons License 2025.05.10 0 0 38558

Szia!

Nálam ilyen formátumban készült el a munkafüzet.

A minta munkalap neve "Minta", ha nálad más lesz, akkor módosítani kell majd a makróban. Valamint a termékek lap neve "Termékek". Ha nálad más, akkor szintén módosítani kell majd a makróban.

A makróban figyelembe van véve, hogy az első sor fejlécet tartalmaz, így annak a változását nem figyeli. Valamint csak és kizárólag az "A" oszlop változását figyeli. Ha nem egy cellát jelölsz ki, hanem többet (mert mondjuk törölsz termékeket), akkor a makró szintén nem fut le.

 

A kék objektumhoz az "ugras" nevű makrót kell hozzárendelni. Ezt ha szeretnéd nyugodtan át is nevezheted.

 

És végül a makrók, amiket a termékek munkalap makrói közé kell illeszteni:

 

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim ws As Worksheet

    If InStr(1, Target.Address, "$A$") > 0 And Target.Row > 1 And InStr(1, Target.Address, ":") = 0 And InStr(1, Target.Address, ",") = 0 Then

        If Target.Value <> "" Then

            If Not SheetExists(Target.Value) Then

                Set ws = Sheets("Minta")

                ws.Select

                ws.Copy after:=Sheets(2)

                ActiveSheet.Name = Target.Value

                Sheets("Termékek").Select

            End If

           

        End If

    End If

End Sub

Function SheetExists(strWSName As String) As Boolean

    Dim ws As Worksheet

    On Error Resume Next

    Set ws = Worksheets(strWSName)

    If Not ws Is Nothing Then SheetExists = True

End Function

Public Sub ugras()

    If InStr(1, ActiveCell.Address, "$A$") > 0 And ActiveCell.Row > 1 Then

        On Error Resume Next

        Sheets(ActiveCell.Value).Select

    End If

End Sub

Előzmény: Andyyy42 (38557)
Andyyy42 Creative Commons License 2025.05.10 0 0 38557

Szia,

 

Második kérdés:
Igen, ez a hivatkozásos megoldás jó egyébként, de mondjuk 70-80-100 terméknél, nem nagyon akarom egyesével beállítani...

Első kérdés:
Igen, sablon szerinti új fül, ez lenne a jó. - ezt kihagytam az előző kérdésből
(gondolom lenne egy sablon fül, amit másolunk)

Előzmény: Garashan (38556)
Garashan Creative Commons License 2025.05.10 0 0 38556

Szia!

 

Második kérdés:

Az Excelben létre lehet hozni hivatkozásokat. Ezt a 2021-es verzióban csatolásnak hívják.

Ha az adott cellába jobb egér gombbal kattintasz, akkor a felugró menüben ki tudod választani a csatolást.
A felugró ablakban bal oldalt a "Hivatkozás erre" résznél válaszd ki a "Dokumentum adott pontja" pontot. Majd kiválasztod a megfelelő fület és a cellahivatkozást.

De ha ez nem felel meg neked, akkor természetesen meg lehet oldani makróval is.

 

Első kérdés:

Ha hozzáadsz egy új terméket, akkor valamilyen sablon szerinti lapfül jöjjön létre vagy egy teljesen üres?

Előzmény: Andyyy42 (38551)
Andyyy42 Creative Commons License 2025.05.10 0 0 38555

"Minden terméknév aztán, külön-külön is szerepel, mert ott vannak neki még tulajdonságai, infói, stb."

 

Ez így akartam:
Minden terméknév aztán, külön-külön fülön is szerepel, mert ott vannak neki még tulajdonságai, infói, stb.

Sheeny Creative Commons License 2025.05.10 0 1 38554

Tökéletes !! nagyon szépen köszönöm !!

Előzmény: Garashan (38548)
Andyyy42 Creative Commons License 2025.05.10 0 0 38553

Előzmény: Andyyy42 (38552)
Andyyy42 Creative Commons License 2025.05.10 0 0 38552

Előzmény: Andyyy42 (38551)
Andyyy42 Creative Commons License 2025.05.10 0 0 38551

Sziasztok,

 

Arra van ötletetek, hogy az alábbit hogyan lehet megoldani?
Az "A" oszlopban terméknevek vannak.
Minden terméknév aztán, külön-külön is szerepel, mert ott vannak neki még tulajdonságai, infói, stb.

 

Első kérdés:
Ha az "A" oszlop elemeit bővítjük, akkor automatikusan hozzon létre egy új fület az új hozzáadott termék nevével.

Második kérdés:
Ha az "A" oszlopban leszűrűnk egy termékre, akkor a kijelölt = leszűrt termék névhez megfelelő fülre ugordjon az excel (ezt gondolom egy makró gombbal például)

 

 

 

 

 

 

Köszi

 

 

 

Garashan Creative Commons License 2025.05.10 0 0 38550

Köszönöm, ezt a trükköt nem ismertem a fórum motorral kapcsolatban, ezentúl figyelni fogok erre is. Azt már megszoktam, hogy a vissza per jelet eltünteti...

A kóddal valamilyen szinten én is küzdöttem, mint disznó a jégen. Most egy másik laptop volt nálam, mint amivel eredetileg írtam a makrót, így a fórumból kellett kimásolnom azt. Át kellett néznem, hogy biztosan jó helyen nyúlok-e bele. Magamnak mindig beformázom szépen tabulátorokkal, hogy könnyen átlátható legyen. Ha hozzá kell nyúlnom egy-egy régebbi makrómhoz, akkor úgy nekem is egyszerűbb ismét felvenni a fonalat. Illetve ezt még a TurboPascal korszakomban megtanultam, hogy a szép kódot könnyebb utólag módosítani, mint a átláthatatlanná tettet.
Tudom azt is, hogy sokan nem szeretik a GOTO utasítást használni, mert ha nem kellő odafigyeléssel alkalmazzuk, akkor kaotikussá válhat a kódunk. Én viszont valahogy mindig is szerettem. Bár törekszek arra, hogy ne sűrűn használjam, de néha azzal egyszerűbb megoldani egy-egy problémát számomra.

Előzmény: pimre (38549)
pimre Creative Commons License 2025.05.10 0 1 38549

Csak egy apró érdekesség: Ha  a VBA kódot először Wordbe másolod, majd onnan ide, akkor megtartja a behúzásokat, és áttekinthető lesz itt is a köd.

Előzmény: Garashan (38548)
Garashan Creative Commons License 2025.05.09 0 0 38548

Szia! Persze, hogy meg lehet oldani.

A kód a következőt csinálja:

Megvizsgálja, hogy a megadott számban van-e a Windows szerinti alapértelmezett tizedesjel.

Ha van, akkor szétbontja a számot egész részre és törtrészre. A törtrészt lerövidíti 1 vagy 2 számjegyre a kerekítés szabályait betartva.

Ha a törtrész 1 számjegyű, akkor "egészrész egész törtrész tized" a kimenő formátum, ha 2 számjegyű, akkor "egészrész egész törtrész század".

 

 

Option Explicit

Function SzamBetuvel(szam As String)
Dim tizedesjel As String
tizedesjel = Application.DecimalSeparator
Dim tortresz As Long
If InStr(1, szam, tizedesjel) > 0 Then
tortresz = CLng(Split(szam, tizedesjel)(1)) / Application.WorksheetFunction.Power(10, Len(Split(szam, tizedesjel)(1)) - 2)
If tortresz Mod 10 = 0 Then
tortresz = tortresz / 10
End If
Else
tortresz = 0
End If
szam = CLngLng(szam)
If (szam > 999999999999#) Or (szam < -999999999999#) Then
SzamBetuvel = "hiba"
Exit Function
End If
If szam = 0 Then
SzamBetuvel = "nulla"
Exit Function
End If
If szam < 0 Then
SzamBetuvel = "mínusz "
Else
SzamBetuvel = ""
End If
Dim szamformazva, szam1, szam10, szam100 As String
szamformazva = WorksheetFunction.Text(Abs(szam), "000000000000")
szam1 = Mid(szamformazva, 3, 1)
szam10 = Mid(szamformazva, 2, 1)
szam100 = Mid(szamformazva, 1, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
SzamBetuvel = SzamBetuvel & szam100 & szam10 & szam1 & "milliárd"
If Mid(szamformazva, 4, 1) > 0 Or Mid(szamformazva, 5, 1) > 0 Or Mid(szamformazva, 6, 1) > 0 Or _
Mid(szamformazva, 7, 1) > 0 Or Mid(szamformazva, 8, 1) > 0 Or Mid(szamformazva, 9, 1) > 0 Or _
Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0 Then
SzamBetuvel = SzamBetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 6, 1)
szam10 = Mid(szamformazva, 5, 1)
szam100 = Mid(szamformazva, 4, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
SzamBetuvel = SzamBetuvel & szam100 & szam10 & szam1 & "millió"
If Mid(szamformazva, 7, 1) > 0 Or Mid(szamformazva, 8, 1) > 0 Or Mid(szamformazva, 9, 1) > 0 Or _
Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0 Then
SzamBetuvel = SzamBetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 9, 1)
szam10 = Mid(szamformazva, 8, 1)
szam100 = Mid(szamformazva, 7, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
SzamBetuvel = SzamBetuvel & szam100 & szam10 & szam1 & "ezer"
If Abs(szam) > 2000 And (Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0) Then
SzamBetuvel = SzamBetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 12, 1)
szam10 = Mid(szamformazva, 11, 1)
szam100 = Mid(szamformazva, 10, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
SzamBetuvel = SzamBetuvel & szam100 & szam10 & szam1
End If
If tortresz > 0 Then
If tortresz >= 10 Then
szam1 = szam_egy(Mid(CStr(tortresz), 2, 1))
szam10 = szam_tiz(Left(CStr(tortresz), 1), Mid(CStr(tortresz), 2, 1))
SzamBetuvel = SzamBetuvel & " egész " & szam10 & szam1 & " század"
Else
szam1 = szam_egy(Left(CStr(tortresz), 1))
SzamBetuvel = SzamBetuvel & " egész " & szam1 & " tized"
End If
End If

End Function

Private Function szam_egy(szam As String)
Select Case szam
Case "0"
szam_egy = ""
Case "1"
szam_egy = "egy"
Case "2"
szam_egy = "kettő"
Case "3"
szam_egy = "három"
Case "4"
szam_egy = "négy"
Case "5"
szam_egy = "öt"
Case "6"
szam_egy = "hat"
Case "7"
szam_egy = "hét"
Case "8"
szam_egy = "nyolc"
Case "9"
szam_egy = "kilenc"
End Select
End Function

Private Function szam_tiz(szam As String, szam2 As String)
If szam2 > 0 Then
Select Case szam
Case "0"
szam_tiz = ""
Case "1"
szam_tiz = "tizen"
Case "2"
szam_tiz = "huszon"
Case "3"
szam_tiz = "harminc"
Case "4"
szam_tiz = "negyven"
Case "5"
szam_tiz = "ötven"
Case "6"
szam_tiz = "hatvan"
Case "7"
szam_tiz = "hetven"
Case "8"
szam_tiz = "nyolcvan"
Case "9"
szam_tiz = "kilencven"
End Select
Else
Select Case szam
Case "0"
szam_tiz = ""
Case "1"
szam_tiz = "tíz"
Case "2"
szam_tiz = "húsz"
Case "3"
szam_tiz = "harminc"
Case "4"
szam_tiz = "negyven"
Case "5"
szam_tiz = "ötven"
Case "6"
szam_tiz = "hatvan"
Case "7"
szam_tiz = "hetven"
Case "8"
szam_tiz = "nyolcvan"
Case "9"
szam_tiz = "kilencven"
End Select
End If
End Function

Private Function szam_szaz(szam As String)
Select Case szam
Case "0"
szam_szaz = ""
Case "1"
szam_szaz = "száz"
Case "2"
szam_szaz = "kétszáz"
Case "3"
szam_szaz = "háromszáz"
Case "4"
szam_szaz = "négyszáz"
Case "5"
szam_szaz = "ötszáz"
Case "6"
szam_szaz = "hatszáz"
Case "7"
szam_szaz = "hétszáz"
Case "8"
szam_szaz = "nyolcszáz"
Case "9"
szam_szaz = "kilencszáz"
End Select
End Function

 

Előzmény: Sheeny (38547)
Sheeny Creative Commons License 2025.05.09 0 0 38547

Még a számból betű-s makrós kérdéshez:

Egy olyan kérdés merült még fel, hogy ha a szám nem egész akkor azt a részt is ki lehet íratni ? pl 2345,23  (csak két tizedesig)

Előzmény: Garashan (38517)
Fferenc50 Creative Commons License 2025.04.26 0 1 38546

Szia!

Leteszteltem és kellett némi javítás bele:

 

Private Sub Wrksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$E$60", "$E$65", "$E$70", "$E$75", "$E$80", "$E$85"
If Len(Replace(Target.Value, "-", "")) = 24 And IsNumeric(Replace(Target.Value, "-", "")) Then
Application.EnableEvents = False
Target.NumberFormat = "@" ' Szöveg formázás
Target.Value = Replace(Target.Value, "-", "")
Target.Value = Left(Target.Value, 8) & "-" & Mid(Target.Value, 9, 8) & "-" & Right(Target.Value, 8)
Application.EnableEvents = True
Else
MsgBox "Hibás a legutoljára bevitt bankszámlaszám (" & Target.Value & ")"
End If
End Select
End Sub

 

Így mindenféle formában elfogadja és helyre teszi a beírást.

Üdv.

Előzmény: Garashan (38544)
Garashan Creative Commons License 2025.04.26 0 0 38545

Lehet, hogy igazad van. Anno utána néztem és úgy rémlik, hogy akkor azt olvastam, hogy ha egyértelmű a számok csoportosítása. Azaz van bennük kötőjel, akkor a kezdő és csakis a kezdő nullák elhagyhatóak. Gondolom azokat hozzá írja automatikusan a rendszer. Ez valamikor 2018-2019 környékén lehetett.

Most K&H android appjában kötőjelet nem is enged bevinni, azt ő írja hozzá automatikusan. Volt pár hónap, amikor az utalási megjegyzésbe pedig nem engedett per jelet írni... Ez elég ciki volt a részükről, mert rengeteg (adóügyi) számla sorszáma tartalmaz perjelet. Így többek között én sem tudtam helyesen elutalni a számláimat, amiket a fogadó fél gépi úton dolgozott fel. Külön le kellett velük levelezni, hogy a kötőjelet perjelként dolgozzák fel. Ugyanis a szerződésben úgy van, hogy ha az utalás nem dolgozható fel automatikusan géppel, akkor következő hónapban a humán erőforrás miatt extra díjat is felszámolhatnak...

Előzmény: Fferenc50 (38541)
Garashan Creative Commons License 2025.04.26 0 0 38544

Használd ezt, a makrót, ha nem számként akarod a jövőben feldolgozni őket, vagy más módon meg tudod oldani a számként való feldolgozást:

 

Private Sub worksheet_change(ByVal Target As Range)

Select Case Target.Address

Case "$E$60"

Case "$E$65"

Case "$E$70"

Case "$E$75"

Case "$E$80"

Case "$E$85"

 

if len(Replace(target.Value, "-", ""))=24 and IsNumeric(target.value) then

Application.EnableEvents = False

target value=Replace(target.Value, "-", "")
target.NumberFormat = "@" ' Szöveg formázás
target.Value = Left(target value, 8) & "-" & Mid(target value, 9, 8) & "-" & Right(target value, 8)
Application.EnableEvents = True

else

msgbox "Hibás a legutoljára bevitt bankszámlaszám (" & target.value & ")"

end if

Case else

Exit Sub

End Sub

 

 

Remélem sehol sem írtam el, mert telefonon írtam. 

 

Előzmény: Sheeny (38543)
Sheeny Creative Commons License 2025.04.26 0 0 38543

De, tökéletes...  jó is lenne, ha nem azt szeretném, hogy azonos cellában "formálódjon" a kívánt alakra a bevitt szám.

Mint ahogy a telefonszámnál is, csak beállítod a formázást a cellába és ha UGYANABBA a cellába beírod a telószámot akkor értékadás után szépen beformázza. Na itt is ez kell, csak nincs olyan előre beállított forma, hogy bankszámlaszám.

A hossz lemérését én is megcsináltam már korábban (én így oldottam meg, hogy a kötőjelek nélkül számolja meg a számokat: =HOSSZ(HELYETTE(E60;"-";""))    )

Köszönöm a segítséged!!

Előzmény: _Nyuszi (38540)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!