Inserire testo all'inizio e alla fine di un Range celle.

Anonimo
2019-07-14T16:26:58+00:00

Salve,

dovrei inserire un testo (o una parola) all'inizio delle celle di una colonna ove già c'è un testo.

ALL'INIZIO TESTO:

Esempio: nel range  B2:B27 della colonna B è inserito il testo "290 solo musica".

Vorrei inserire 'pag' prima del testo in modo che venga "pag 290 solo musica".

ALLA FINE DEL TESTO

Esempio: nello stesso range (B2:B27) ove adesso c'é il testo 'pag 290 solo musica' vorrei inserire "nel libro 01" alla fine del testo in modo che venga "pag 290 solo musica nel libro 01".

So che bisogna fare un ciclo For...Next.

Io sono solo in grado di scrivere testo nelle celle vuote:

Esempio:

Sub InserisciPrimaDelTesto()

    For i = 2 To 27

        If ActiveSheet.Cells(i, 4).Value = "" Then

            ActiveSheet.Cells(i, 4).Value = "Roma"

        End If

    Next i

End Sub

Sub InserisciDopoIlTesto()

    For i = 2 To 27

        If ActiveSheet.Cells(i, 4).Value = "" Then

            ActiveSheet.Cells(i, 4).Value = "Roma"

        End If

    Next i

End Sub

Come posso modificare i due script FOR...NEXT in modo da inserire testo, prima e dopo il testo già scritto?

Carlo - Verona

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2019-07-15T11:18:24+00:00

Ciao Carlo,

perfetto! Tutto OK.

Funziona.

Ovviamente se volessi inserire qualcosa solo prima del testo, escludo con (') la riga: Const bStr As String = "nel libro 01" .

La stessa cosa vale per il dopo/testo.

Per aggiungere una frase solamente prima del testo, sostituisci l'istruzione

          sStr = aStr & Space(1) & sStr & Space(1) & bStr

con:

               sStr = aStr & Space(1) & sStr 

Per aggiungere qualcosa solo dopo il testo esistente,  prova invece:

              sStr = sStr & Space(1) & bStr

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2019-07-15T07:42:42+00:00

Ok, molto semplicemente puoi prendere come riferimento queste macro, che non fanno alcun controllo sul valore della cella.

Sub InserisciPrimaDelTesto()

For i = 2 To 27



        ActiveSheet.Cells(i, 4).Value = "Roma" & " " & ActiveSheet.Cells(i, 4).Value



Next i

End Sub

Sub InserisciDopoIlTesto()

For i = 2 To 27



        ActiveSheet.Cells(i, 4).Value = ActiveSheet.Cells(i, 4).Value & " " & "Roma"



Next i

End Sub

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2019-07-14T21:27:30+00:00

Ciao Carlo,

dovrei inserire un testo (o una parola) all'inizio delle celle di una colonna ove già c'è un testo.

ALL'INIZIO TESTO:

Esempio: nel range  B2:B27 della colonna B è inserito il testo "290 solo musica".

Vorrei inserire 'pag' prima del testo in modo che venga "pag 290 solo musica".

ALLA FINE DEL TESTO

Esempio: nello stesso range (B2:B27) ove adesso c'é il testo 'pag 290 solo musica' vorrei inserire "nel libro 01" alla fine del testo in modo che venga "pag 290 solo musica nel libro 01".

So che bisogna fare un ciclo For...Next.

Io sono solo in grado di scrivere testo nelle celle vuote:

Esempio:

Sub InserisciPrimaDelTesto()

    For i = 2 To 27

        If ActiveSheet.Cells(i, 4).Value = "" Then

            ActiveSheet.Cells(i, 4).Value = "Roma"

        End If

    Next i

End Sub

Sub InserisciDopoIlTesto()

    For i = 2 To 27

        If ActiveSheet.Cells(i, 4).Value = "" Then

            ActiveSheet.Cells(i, 4).Value = "Roma"

        End If

    Next i

End Sub

Come posso modificare i due script FOR...NEXT in modo da inserire testo, prima e dopo il testo già scritto?

Prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range, rCell As Range

    Dim arrIn As Variant

    Dim sStr As String

    Dim i As Long

    Const sFoglio As String = "Foglio1"          '<<=== Modifica

    Const sIntervallo As String = "B2:B27"      '<<=== Modifica

    Const aStr As String = "pag"                       '<<=== Modifica

    Const bStr As String = "nel libro 01"    '<<=== Modifica

    Set WB = ThisWorkbook

    Set SH = WB.Sheets(sFoglio)

    Set Rng = SH.Range(sIntervallo)

    arrIn = Rng.Value

    For i = LBound(arrIn) To UBound(arrIn)

          sStr = arrIn(i, 1)

          sStr = aStr & Space(1) & sStr & Space(1) & bStr

          arrIn(i, 1) = sStr

    Next i

    Rng.Value = arrIn

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-07-15T07:29:19+00:00

    Salve Carlo,

    sono Donata, una consulente indipendente e sono qui per aiutarti. Se intendi aggiungere del testo prima e dopo un testo esistente, perché nei cicli FOR cerchi delle celle vuote?

    Cordialmente.

    Ciao Donata,

    >>>perché nei cicli FOR cerchi delle celle vuote?

    Perché in quel caso mi serviva inserire del testo nelle celle che erano vuote.

    Ho messo questo script per far intendere che cose del genere sono stato in grado, ma per inserire testo primo e dopo... be questo mi crea qualche problema.

    Carlo - Verona

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-07-14T19:07:12+00:00

    Salve Carlo,

    sono Donata, una consulente indipendente e sono qui per aiutarti. Se intendi aggiungere del testo prima e dopo un testo esistente, perché nei cicli FOR cerchi delle celle vuote?

    Cordialmente.

    La risposta è stata utile?

    0 commenti Nessun commento