By MariannevanLubek miercuri, 06 octombrie 2021
Răspunsuri 3
Preferințe 0
Vizualizări 7.2 K
Voturi 0
Tocmai am achiziționat Kutools pentru Excel pentru că căutam o opțiune de a copia în Excel doar marginile dintr-o zonă selectată - lăsând neschimbate conținutul, formatarea, lățimea coloanei din zona de destinație.

Am găsit o soluție pentru aceasta - folosind Kutools pentru Excel pe această pagină web:
https://www.extendoffice.com/documents/excel/4336-excel-copy-borders-only.html#a1 

Acum am încercat să folosesc macrocomanda sugerată și am descoperit că nu face deloc ceea ce s-a promis:
Pe lângă copierea chenarelor, mai:
- șterge formatarea din zona de destinație
- schimbă coloana zonei de destinație
Mai mult, macro-ul funcționează destul de lent și modificările nu pot fi anulate.

Mă puteți ajuta vă rog să mă asigur că macro-ul face ceea ce s-a promis....?

Sper sa ne mai auzim

Cel mai bune
Marianne
Bună MariannevanLubek,

Îmi pare rău pentru deranj. Aici am scris o altă macrocomandă pentru caz. Poti te rog sa incerci?

Sub CopyBorders()
Dim xRg, yRg As Range
On Error Resume Next

Set xRg = Application.InputBox("Select Range with Borders to Copy...", "Kutools For Excel", , , , , , 8)
Set yRg = Application.InputBox("Select Cells to Apply Borders to range..", "Kutools For Excel", , , , , , 8)

With yRg.Borders(xlEdgeLeft)
.LineStyle = xRg.Borders(xlEdgeLeft).LineStyle
.ColorIndex = xRg.Borders(xlEdgeLeft).ColorIndex
.TintAndShade = xRg.Borders(xlEdgeLeft).TintAndShade
.Weight = xRg.Borders(xlEdgeLeft).Weight
End With
With yRg.Borders(xlEdgeTop)
.LineStyle = xRg.Borders(xlEdgeTop).LineStyle
.ColorIndex = xRg.Borders(xlEdgeTop).ColorIndex
.TintAndShade = xRg.Borders(xlEdgeTop).TintAndShade
.Weight = xRg.Borders(xlEdgeTop).Weight
End With
With yRg.Borders(xlEdgeBottom)
.LineStyle = xRg.Borders(xlEdgeBottom).LineStyle
.ColorIndex = xRg.Borders(xlEdgeBottom).ColorIndex
.TintAndShade = xRg.Borders(xlEdgeBottom).TintAndShade
.Weight = xRg.Borders(xlEdgeBottom).Weight
End With
With yRg.Borders(xlEdgeRight)
.LineStyle = xRg.Borders(xlEdgeRight).LineStyle
.ColorIndex = xRg.Borders(xlEdgeRight).ColorIndex
.TintAndShade = xRg.Borders(xlEdgeRight).TintAndShade
.Weight = xRg.Borders(xlEdgeRight).Weight
End With
With yRg.Borders(xlInsideHorizontal)
.LineStyle = xRg.Borders(xlInsideHorizontal).LineStyle
.ColorIndex = xRg.Borders(xlInsideHorizontal).ColorIndex
.TintAndShade = xRg.Borders(xlInsideHorizontal).TintAndShade
.Weight = xRg.Borders(xlInsideHorizontal).Weight
End With
With yRg.Borders(xlInsideVertical)
.LineStyle = xRg.Borders(xlInsideVertical).LineStyle
.ColorIndex = xRg.Borders(xlInsideVertical).ColorIndex
.TintAndShade = xRg.Borders(xlInsideVertical).TintAndShade
.Weight = xRg.Borders(xlInsideVertical).Weight
End With
End Sub


Dacă aveți alte întrebări, vă rugăm să nu ezitați să-mi spuneți.

Amanda
·
de ani în urmă 2
·
0 Îi place
·
0 Voturi
·
4 Comentarii
·
Bună MariannevanLubek,

Un lucru pe care trebuie să-ți spun este că, după ce rulezi codul, trebuie să selectezi toate celulele în care vrei să aplici marginile, dar nu o celulă, la fel ca în captura de ecran de mai jos:
selectați celule.png


Amanda
·
de ani în urmă 2
·
0 Îi place
·
0 Voturi
·
4 Comentarii
·
Multumesc, intre timp problema a fost rezolvata intr-un alt mod.
·
de ani în urmă 2
·
0 Îi place
·
0 Voturi
·
4 Comentarii
·
Vizualizați mesajul complet