raimea
00sabato 10 febbraio 2024 14:20
ciao
nel fgl generale col G
da riga 8
vorrei separare i nomi con una riga tratteggiata verde
la riga dovrebbe essere messa al variare del nome
rispetto al nome della riga precedente
vi allego il file
ciao
federico460
00sabato 10 febbraio 2024 16:26
ciao
cosa intendi
mettere una riga vuota ogni cambio nome?
esempio
raimea
00sabato 10 febbraio 2024 16:35
ciao
mettere una riga vuota ogni cambio nome?
NO
vorrei fare come e' nel file allegato (riga verde messa manualmente)
semplicemente mettere verde-tratteggiato la riga
ciao
rollis13
00sabato 10 febbraio 2024 16:57
Un saluto a tutti.
Io in realtà la macro l'ho preparata ormai da parecchio ma non mi funziona il tratteggio; se qualcuno sa come scrivere il codice per ora pubblico la macro incompleta:
Option Explicit
Sub Inserisci_Tratteggio()
Dim riga As Long
Application.ScreenUpdating = False
For riga = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row To 9 Step -1 'cicla dal basso verso l'alto la colonna G
Cells(riga, "G").Borders(xlEdgeTop).LineStyle = xlNone 'togli tratteggio preesistente
If Cells(riga, "G").Value <> Cells(riga - 1, "G").Value Then 'se dati diversi ...
With Cells(riga, "G").Borders(xlEdgeTop) '... metti il tratteggio
.LineStyle = xlDash '<- boh, si comporta da xlContinuous a causa del xlThick
.Color = vbGreen
.Weight = xlThick
End With
End If
Next riga
Application.ScreenUpdating = True
End Sub
rollis13
00sabato 10 febbraio 2024 17:18
Vabbè, per ora ho risolto utilizzando uno Stile invece che un Bordo. Mi sono creato uno Stile nuovo con il tratteggio in alto nominandolo
Tratteggio e ho modificato la macro così:
Sub Inserisci_Stile()
Dim riga As Long
Application.ScreenUpdating = False
For riga = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row To 9 Step -1 'cicla dal basso verso l'alto la colonna G
Cells(riga, "G").Style = "Normal" 'togli stile Tratteggio preesistente
If Cells(riga, "G").Value <> Cells(riga - 1, "G").Value Then Cells(riga, "G").Style = "Tratteggio" 'se diverso applica stile Tratteggio
Next riga
Application.ScreenUpdating = True
End Sub
federico460
00sabato 10 febbraio 2024 17:22
ciao
Rollis
Sub Inserisci_Tratteggio()
Dim riga As Long
Application.ScreenUpdating = False
For riga = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row To 9 Step -1 'cicla dal basso verso l'alto la colonna G
Cells(riga, "G").Borders(xlEdgeTop).LineStyle = xlNone 'togli tratteggio preesistente
If Cells(riga, "G").Value <> Cells(riga - 1, "G").Value Then 'se dati diversi ...
With Cells(riga, "G").Borders(xlEdgeTop) '... metti il tratteggio
.LineStyle = xlDash
.Color = vbGreen
.TintAndShade = 0
.Weight = xlMedium
End With
End If
Next riga
Application.ScreenUpdating = True
End Sub
rollis13
10sabato 10 febbraio 2024 17:27
Sì, sì, proprio così. A sbatterci il naso mi sono accorto che bastava usare .Weight = xlMedium invece di .xlThick. E' che nell'esempio il tratteggio sembrava più grosso.
raimea
00sabato 10 febbraio 2024 17:35
ciao
bene funziona come chiedevo.
mi sono accorto che mi servirebbe una piccola aggiunta se possibile 🙄
mantenedo riferimento col G come da descrizione
la riga verde tratteggiata di col G ,
si potrebbe far arrivare fino col I (i)
e' possibile con piccola aggiunta ?
ciao
alfrimpa
10sabato 10 febbraio 2024 17:58
Sostituisci la riga 7 con questa
vb
With Range(Cells(riga, 7), Cells(riga, 9)).Borders(xlEdgeTop)
rollis13
10sabato 10 febbraio 2024 18:13
Non è sufficiente, per non lasciare in giro immondizia bisogna anche cambiare la riga 5 in:
Range(Cells(riga, "G"), Cells(riga, "I")).Borders(xlEdgeTop).LineStyle = xlNone 'togli tratteggio preesistente
raimea
10sabato 10 febbraio 2024 19:14
ciao
e' tutto ok
grazie a tutti 🤩
ciao