- Xiaomi 12 - az izmos 12
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Honor 200 Pro - mobilportré
- T Phone 2 Pro - majdnem mindenben jobb
- Redmi Watch 5 - formás, de egyszerű
- 8000-es akksi került az IQOO Z10 Turbo+-ba
- Egy óra, két rendszer
- Samsung Galaxy Watch7 - kötelező kör
Hirdetés
-
Mobilarena
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
-
Delila_1
veterán
Ha egymás alatt vannak az összevont cellák, akkor a kijelölésük után a makrót indítva beírja mindegyikbe a fölötte lévő értéket hivatkozással.
Érdemes utána kijelölni az oszlopot, és saját magára irányítottan beilleszteni az értéküket.
Sub Cella_felosztás()
Selection.UnMerge
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub -
m.zmrzlina
senior tag
Csak Select Case szerkezetben kell a páratlan sor helyett a párosból kivonni az 1-et így:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cella As Range
Dim datumoszlop As Integer
Dim maradekos As Integer
maradekos = (Target.Column Mod 2)
Select Case maradekos
Case Is <> 0
datumoszlop = Target.Column
Case Is = 0
datumoszlop = Target.Column - 1
End Select
If Not Application.Intersect(Target, Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1))) Is Nothing Then
For Each cella In Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1)).Cells
If Not cella.Address = Target.Address And Target.Value <> "" Then
If cella.Value = Target.Value Then
MsgBox Target.Value & " erre az időpontra nem osztható be!"
Target.Value = ""
Exit Sub
End If
End If
Next
End If
End SubA napokat írhatom a végtelenségig?
Igen, bár ennek a megoldásnak van legalább egy komoly hibája, mégpedig hogy ez a sor:
If Not cella.Address = Target.Address And Target.Value <> "" Then
meg ez:
If cella.Value = Target.Value Then
kiakad, ha nem egyetlen cellán, hanem tartományon szeretnél műveletet végezni. (pl Beszúrás stb..) -
m.zmrzlina
senior tag
Nem mondom, hogy minden tekintetben végleges megoldás de első körben úgy tűnik működik.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cella As Range
Dim datumoszlop As Integer
Dim maradekos As Integer
maradekos = (Target.Column Mod 2)
Select Case maradekos
Case Is <> 0
datumoszlop = Target.Column - 1
Case Is = 0
datumoszlop = Target.Column
End Select
If Not Application.Intersect(Target, Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1))) Is Nothing Then
For Each cella In Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1)).Cells
If Not cella.Address = Target.Address And Target.Value <> "" Then
If cella.Value = Target.Value Then
MsgBox Target.Value & " erre az időpontra nem osztható be!"
Target.Value = ""
Exit Sub
End If
End If
Next
End If
End SubÉn a te munkafüzeted B:C oszlopát érvényesítéssel együtt lemásoltam rendre D:E, F:G ...stb-be a dolgozók tartományt pedig áthelyeztem. Teszteld, ha gond van jelezd!
-
m.zmrzlina
senior tag
Van rá igény, de lehet a 2-es munkalapon is a dolgozók neve.
Az nem gond, ha másik munkalapon van a név mert az érvényesítésnél úgy láttam nevet adtál a tartománynak és úgy használtad. Használd a #11367-ben lévő változatot az kezeli azt a problémát, hogy csak a B3:C18 tartomány változásainál lép működésbe a makró azon kívül nem ellenőrzi az adatbevitelt.
Viszont létrehoztam egy makrót és beírtam amit javasoltál, de továbbra is enged két azonost kiválasztani.
Szerintem az lehet a gond, hogy nem a munkalaphoz rendelted a makrót. Ne azt csináld, hogy Insert>Module és oda másolod a makrót, hanem jobkatt a munkalapfülön ott Kód megjelenítése opció. Itt van leírva néhány hsz-ban, hogy hogyan kell csinálni. (köszi Delila_1
)
Illetve arra van tipped, hogyan lehetne megcsinálni, hogy, ha a következő napoknál is működjön a dolog?
A következő napok adatai hol vannak elhelyezve?
-
m.zmrzlina
senior tag
Javított verzió
aminek mindegy, hogy a B3:C18 tartományon kívül mit hová szeretnél beírni:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cella As Range
If Not Application.Intersect(Target, Range("B3:C18")) Is Nothing Then
For Each cella In Range("B3:C18").Cells
If Not cella.Address = Target.Address And Target.Value <> "" Then
If cella.Value = Target.Value Then
MsgBox Target.Value & " erre az időpontra nem osztható be!"
Target.Value = ""
Exit Sub
End If
End If
Next
End If
End Sub -
m.zmrzlina
senior tag
-
m.zmrzlina
senior tag
Első körben próbáld a következő makrót a kérdéses munkalaphoz rendelni:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cella As Range
For Each cella In Range("B3:C18").Cells
If Not cella.Address = Target.Address And Target.Value <> "" Then
If cella.Value = Target.Value Then
MsgBox Target.Value & " erre az időpontra nem osztható be!"
Target.Value = ""
Exit Sub
End If
End If
Next
End Sub -
Az excel-ben 15 számjegy a max (ez limitáció, nem hiba), abban az esetben, ha a cella/cellák szám formátumra vannak formázva. Mivel nem akarsz vele matematikai műveleteket végezni (gondolom csak amolyan azonosítóként funkcionálnak), ezért formázd a cellá(ka)t szövegre.
Ha most szám és szövegre formázod, akkor normál alakot fognak felvenni, tehát újra be kell(ene) írnod vagy importálnod az adatokat. Ezt elkerülendő, először formázd át az adott oszlopot szöveggé, vegyél fel egy segédoszlopot (szúrj be egy oszlopot a számjegyeket tartalmazó oszlop mellé) és (pl ha A oszlopban vannak ezek a nagy számok) B oszlopba, a B1 cellába írd be ezt a képletet =SZÖVEG(A1;"#") és másold le, ameddig kell.
Ha megvagy, akkor rajtad áll, hogy törlöd az A oszlopot (így helyére lép a B oszlop) avagy kijelölöd a B oszlopot és "rámásolod" az A oszlopra (majd törlöd a B oszlopot)Remélem nem fogalmaztam túl bonyolultan....
Új hozzászólás Aktív témák
- Kínai és egyéb olcsó órák topikja
- Xiaomi 12 - az izmos 12
- Azonnali alaplapos kérdések órája
- Miért álltak az oldalak egy hétig, mi történt?
- A lemondást javasolja az Intel vezetőjének Donald Trump
- Autós topik
- Kerékpárosok, bringások ide!
- Mibe tegyem a megtakarításaimat?
- gban: Ingyen kellene, de tegnapra
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- iKing.Hu Samsung Galaxy S25 Plus Navy 12/256 GB Használt, karcmentes állapotban 3 hónap garanciával!
- Bomba ár! Dell Latitude E6520 - i5-2GEN I 6GB I 320GB I HDMI I 15,6" HD+ I W10 I Gari!
- Samsung Galaxy A34 5G 128GB Kártyafüggetlen 1 év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest