-
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
-
Fferi50
Topikgazda
válasz
Acustic
#35716
üzenetére
Szia!
Az alábbi makrókat bemásolod egy modulba. Majd hozzárendelheted az általad kívánt billentyű kombinációhoz:
Public frm As CellFormat
Sub névminta()
'
' névminta Makró
' ctrl+n a neveket előbb besárgítja, majd kereső funkcióra áll, megtalálja az első nevet.
'
' Billentyűparancs: Ctrl+n
'
'Dim frm As CellFormat
Dim frm1 As Range, frm2 As Range
If frm Is Nothing Then Set frm = Application.ReplaceFormat
Set frm1 = Range("I1")
Set frm2 = Range("I2")
frm.Clear
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm1.HorizontalAlignment 'xlRight
.VerticalAlignment = frm1.VerticalAlignment ' xlTop
With .Font
.Name = frm1.Font.Name ' "Arial"
.FontStyle = frm1.Font.FontStyle ' "Normál"
.Size = frm1.Font.Size ' 12
.Color = frm1.Font.Color ' vbBlack
End With
.Borders.LineStyle = xlNone
With .Interior
.PatternColorIndex = frm1.Interior.PatternColorIndex ' xlAutomatic
.Color = frm1.Interior.Color ' 65535
End With
.Locked = True
.FormulaHidden = False
End With
Columns("A:A").Replace what:=Range("H1").Value, replacement:=Range("H1").Value, LookAt:=xlWhole, _
searchorder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Application.EnableEvents = False
Cells.Find(what:=Range("H1").Value, LookIn:=xlFormulas, LookAt _
:=xlWhole, searchorder:=xlByColumns, MatchCase _
:=False, SearchFormat:=False).Activate
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm2.HorizontalAlignment ' xlLeft
.VerticalAlignment = frm2.VerticalAlignment ' xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
With .Font
.Name = frm2.Font.Name ' "Arial"
.FontStyle = frm2.Font.FontStyle ' "Normál"
.Size = frm2.Font.Size ' 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
Application.EnableEvents = True
End Sub
Sub nevpiros()
'A H1 cellában levő nevet az A oszlopban "bepirosítja"
Dim frm1 As Range, frm2 As Range
If frm Is Nothing Then Set frm = Application.ReplaceFormat
Set frm1 = Range("I1")
Set frm2 = Range("I2")
With frm 'Application.ReplaceFormat
.HorizontalAlignment = frm2.HorizontalAlignment ' xlLeft
.VerticalAlignment = frm2.VerticalAlignment ' xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
With .Font
.Name = frm2.Font.Name ' "Arial"
.FontStyle = frm2.Font.FontStyle ' "Normál"
.Size = frm2.Font.Size ' 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
Range("A:A").Replace what:=Range("H1").Value, replacement:=Range("H1").Value, ReplaceFormat:=True
End SubA billentyű hozzárendelést neked kell megtenni.
Az első sor is fontos, ami a sub előtt van. Itt definiálunk egy olyan változót, amelynek az értéke megmarad mindaddig, amíg ki nem léptél az excelből.Ha még jobban automatizálni szeretnéd, akkor a következő két makrót a munkalap kódlapjára kell bemásolnod: (jobb egérgomb a munkalap fülön, kód megjelenítése)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 And Target.Row = 1 Then 'ha új nevet írsz a H1 cellába
Application.EnableEvents = False
névminta
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cl As Range
If Target.Column = 1 Then 'ha a H1 cellában levő névre léptél, az előzőt "bepirosítja"
If Target.Value = Range("H1").Value Then
If Target.Row > 1 Then
Application.EnableEvents = False
Set cl = Columns("A:A").Find(what:=Target.Value, after:=Target, searchdirection:=xlPrevious)
If Not cl Is Nothing Then cl.Replace what:=Target.Value, replacement:=Target.Value, ReplaceFormat:=True
Application.EnableEvents = True
End If
End If
End If
If Target.Column = 8 And Target.Row = 1 Then ' az utolsó nevet is elérted, ezért a H1 cellára ugrottál - az utolsó nevet is megváltoztatja
Set cl = Columns("A:A").Find(what:=Target.Value, after:=Columns("A:A").End(xlUp), searchdirection:=xlPrevious)
If Not cl Is Nothing Then cl.Replace what:=Target.Value, replacement:=Target.Value, ReplaceFormat:=True
End If
End SubAz első akkor lép működésbe, ha a H1 cellába beírsz egy nevet. Ekkor automatikusan megjelöli az A oszlopban mindazokat a cellákat, amelyben az a név van.
A második azt figyeli, hogy az új cellában, amire léptél, a H1 -ben levő név van-e. Ha igen, akkor az előző nevet megváltoztatja (pirosítja).
Ugyanígy jár el az utolsó névvel, ha a H1 cellára ugrasz.
Nem kell azonnal a következő névre (H1 cellára) ugrani, amikor a lefelé "sétálásban" ugyanarra a névre lépsz, akkor lép működésbe.Remélem érthető, ha nem, akkor kérdezz bátran.
Üdv.
Új hozzászólás Aktív témák
- Redmi Note 13 Pro+ 5G 12/512 /// Számla + Garancia
- Akció! ÚJ akku! Lenovo ThinkPad X1 Extreme Gen2 i7-9850H 32GB 1000GB GTX1650 500nit 4K UHD 1 év gar
- HIBÁTLAN iPhone 13 128GB Green-1 ÉV GARANCIA - Kártyafüggetlen, MS4347
- Honor Pad X8 64GB, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Fferi50
