› Excel e gli applicativi Microsoft Office › macro ripetuta
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
-
AutoreArticoli
-
salve a tuttisono alle prime armi con le macro per ora mi limito a registrare e a fare qualche modifica.In una colonna, della quale a priori non conosco la fine, devo cercare le celle che sono in grassetto, corpo 12 e spostare tali celle nella colonna precedente, una riga sotto, ossia se la cella trovata fosse in B6 deve essere spostata ad A7. Riesco ad ottenere quanto voglio ma una sola volta. Vorrei che l'operazione fosse applicata all'intera colonna la cui lunghezza può cambiare. Il codice registrato ottenuto è questo:With Application.FindFormat.Font
.FontStyle = "Grassetto"
.Size = 12
End With
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=True).Activate
Selection.Cut
ActiveCell.Offset(1, -1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, 1).Range("A1").Selectci saranno sicuramente metodi migliori, potete darmi qualche dritta?. grazie mille dell'attenzionei.CiaoDue Suggerimenti1) il primo riguarda un metodo per imparare. Sfrutta l'help di VBA, basta posizionarsi su una parola e premere F1.Se provi con .find troverai la pagina che ti spiga che esistono anche i metodi FindNext e FindPrevious per ripetere la ricerca.E trovi un esempio su come utilizzarli.2) per fare una cosa come vuoi tu bastava fare una macro con un ciclo for (vedi l'esempio qui sotto per la colonna B da B1 fino all'ultima piena)Sub Prova() Dim CellaW As Range For Each CellaW In Range("B1", Cells(Rows.Count, 2).End(xlUp)) With CellaW.Font If ((.Bold = True) And (.Size = 12)) Then CellaW.Offset(-1, -1) = CellaW CellaW = "" End If End With Next End Sub
-
AutoreArticoli
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)