Condividi:        

rinominare casella di testo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

rinominare casella di testo

Postdi matzap » 10/07/13 14:04

Ciao, eccomi di nuovo qui dopo un pò di tempo....

ho una macro che ogni volta che viene lanciata crea una casella di testo e vorrei scrivere una istruzione da inserire in un'altra macro che la cancelli.
il problema è che ogni volta la casella creata ha un nome diverso. Vorrei assegnarli sempre lo stesso nome in modo da poterla sempre individuare.

sapete dirmi come fare?

Poiche devo inserire il codice di cancellazione in una macro ben più complessa, se la casella di testo non è presente, come posso individuare se la casella esiste o no, e in questo secondo caso saltare l'istruzione di cancellazione?

ciao e grazie
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: rinominare casella di testo

Postdi Flash30005 » 10/07/13 16:57

Per denominare una casella testo puoi usare questo codice (codice che crea una casella testo, inserisce il testo, alla fine cancella la casella testo)
Codice: Seleziona tutto
Sub CreacancellaTB()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 134.25, 61.5, 95.25, 46.5).Name = "Prova"
ActiveSheet.Shapes("Prova").Select
    Selection.Characters.Text = "Testo della TextBox"
    With Selection.Characters(Start:=1, Length:=4).Font
        .Name = "Arial"
        .FontStyle = "Normale"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Range("E13").Select
    ActiveSheet.Shapes("Prova").Delete
End Sub


Ma se non hai altre caselle testo ma solo una non è necessario assegnare un nome quindi avrai una macro così
Codice: Seleziona tutto
Sub CreacancellaTB2()

    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 134.25, 61.5, 95.25, 46.5).Select
    Selection.Characters.Text = "Testo della TextBox"
    With Selection.Characters(Start:=1, Length:=4).Font
        .Name = "Arial"
        .FontStyle = "Normale"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Range("E13").Select
    ActiveSheet.Shapes(1).Delete
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: rinominare casella di testo

Postdi matzap » 12/07/13 14:43

Grazie Flash,
ma se provo a cancellarla , prima di averla creata, come posso fargli saltare l'istruzione cancella e andare oltre?
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: rinominare casella di testo

Postdi Flash30005 » 12/07/13 17:29

:?:
come puoi cancellarla prima di averla creata? :undecided:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: rinominare casella di testo

Postdi Anthony47 » 13/07/13 17:02

Io invece di creare /cancellare /ricreare /ricancellare /etc lavorerei con un textbox fisso, con un nome convenzionale e fisso (es myTextbox) e non quello di default variabile, e poi all' occorrenza fare
Sheets("Foglio1").myTextbox.Visible = False oppure Sheets("Foglio1").myTextbox.Visible = True

Se invece vuoi rimanere su AddTextbox /Delete allora usa On Error per ignorare l' eventuale assenza del controllo:
Codice: Seleziona tutto
On Error Resume Next    '<< Add
ActiveSheet.Shapes("Prova").Delete
On Error GoTo 0     '<< Add


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: rinominare casella di testo

Postdi matzap » 22/07/13 16:03

Ciao Anthony
la soluzione:
Sheets("Foglio1").myTextbox.Visible = False oppure Sheets("Foglio1").myTextbox.Visible = True
è perfetta, è quello che cercavo.

tuttavia il comando On Error mi sarebbe molto utile, ma, scusa la mia ignoranza, non ne capisco la sintassi.... puoi aiutarmi?
Grazie
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: rinominare casella di testo

Postdi Anthony47 » 23/07/13 00:51

La sintassi di On Error la trovi nell' help on line del vba, alla voce "Istruzione On Error": trovi la sintassi, la descrizione, le osservazioni, qualche esempio.
Non mi candido per sostituire la miniera di informazioni che quello strumento (l' help on line) rappresenta...
Nel codice che ti avevo suggerito (vedi viewtopic.php?f=26&t=99573#p573949) viene usato On Error Resume Next per evitare di generare eventualmente un errore sull' istruzione ActiveSheet.Shapes("Prova").Delete successiva, potendo cosi' inserire l' istruzione ".Delete" per cancellare la shape indirizzata, se presente, o non fare niente (se non presente).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: rinominare casella di testo

Postdi matzap » 23/07/13 07:45

Grazie
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27


Torna a Applicazioni Office Windows


Topic correlati a "rinominare casella di testo":


Chi c’è in linea

Visitano il forum: Nessuno e 79 ospiti