Login Registrati
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
  • Autore
    Articoli
  • #1919 Score: 0 | Risposta

    inghe05
    Partecipante
      salve a tutti
      sono 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").Select
      ci saranno sicuramente metodi migliori, potete darmi qualche dritta?. grazie mille dell'attenzione
      i.
      #1923 Score: 0 | Risposta

      Luca73
      Partecipante
        54 pts
        Ciao
        Due Suggerimenti
        1) 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
        #2232 Score: 0 | Risposta

        inghe05
        Partecipante
          grazie mille
        Login Registrati
        Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
        Rispondi a: macro ripetuta
        Gli allegati sono permessi solo ad utenti REGISTRATI
        Le tue informazioni: