Unione celle grassetto |
|
| Storico
discussioni |
|
| Unione di celle in grassetto di
Katia |
Ciao ragazzi avrei un problema di questo tipo,
banale ma che non riesco a risolvere la funzione qui sotto
inserisce nella cella c l'unione del contenuto della cella a e
la cella b (in questo esempio dalla cella 1 alla cella 3).
il mio problema nasce nel momento in cui vorrei che alla fine
dell'unione il testo contenuto nella cella b risultasse in grassetto
nella cella c. esempio cella a1 contiene il testo "mare"
cella b2 contiene il testo "blu" nella cella c1 ottengo
"mare blu" io vorrei che blu risultasse in grassetto ho
provato ad impostare prima dell'unione le celle "b" in grassetto ma
successivamente quando le unisco non ottengo il risultato sperato.
qualcuno sa come fare?
For I = 1 To 3
Range("c" & I).Value = Range("a" & I).Value & " " & Range("b" & I).Value
Next I
| |
|
| Ciao katia di
Apoben64 |
Forse è venuto il momento che tu faccia uso del
"registratore di macro di excel" , unop strumento unico che ti
permete di crearti automunaticamente il codice simulando quello che
vuoi ottenere . provaci ! in ogni modo basta che inserisci nella
cella attiva questa istruzione .
Selection.Font.Bold = True ' grassetto | |
|
| Per luca di Katia |
Ciao luca forse non hai letto attentamente quello
che ho scritto anche se imposto la cella su grassetto quando le
unisco il testo contenuto nella cella grassetto non si evidenzia
qui sotto ho completato la macro spiegazione lui
evidenzia in grasseto il contenuto delle cella da b1 a b3 poi va
in c1 c2 e c3 ed unisce i testi contenuti in a1 a2 a3 con b1 b2 e b3
es se in a1 ho mare e in b1 ho il testo blu in c1 dovrei
avere il testo mare blu ma con solamente blu in grassetto
Sub PROVA()
For i = 1 To 3
Range("B" & i).Select
Selection.Font.Bold = True
Range("c" & i).Value = Range("a" & i).Value & " " & Range("b" & i).Value
Next i
End Sub | |
|
| Per luca di Katia |
Il registratore di macro l'ho utilizzo sempre
solamente che lui agisce su singola cella
|
|
| Ciao katia di
Apoben64 |
Non volevo sottovalutare le tue capacità, ma se
vuoi che riesco a capirti , ti chiedo per favore di allungare un
esempio concreto utilizzando la sezione apposita. sai col caldo
sono un pò tardo ! |
|
| di Apoben64 |
Così non và bene ?
Sub PROVA()
For i = 1 To 3
Range("B" & i).Select
Range("c" & i).Value = Range("a" & i).Value & " " & Range("b" & i).Value
Range("C" & i).Font.Bold = True
Next i
End Sub | |
|
| di Apoben64 |
Non credo perchè tu vuoi solo blu in grassetto ,
non è così ? |
|
| di Apoben64 |
E creare una colonna parallela che con la funzione
=destra ti permette di prendere solo blu grassettato ? . in d1
=destra(c1;3)
|
|
| di Apoben64 |
Dopo un consulto mi si dice che non si può colorare
una parte di un testo contenuto in una cella , per questo
bisognerebbe fare uso di una casella di testo, senza bordi . prova
! |
|
| Per luca di Katia |
Se provi ad inserire un testo composto da due
parole in una cella poi vai all'interno della cella ed evidenzi solo
una parte e clicchi sull'icona del grassetto vedrai che lui te lo fa
fare quindi e' possibile il problema e' in vba come fare |
|
| di Apoben64 |
| Ma và ? |
|
| di Apoben64 |
Eccoti il codice, devi adattarlo alla tua macro
!
Range("C1").Select
ActiveCell.FormulaR1C1 = "mare blu"
With ActiveCell.Characters(Start:=1, Length:=5).Font
.Name = "Verdana"
.FontStyle = "Normale"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
With ActiveCell.Characters(Start:=6, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Grassetto"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("B1").Select
End Sub | |
|
| di Big ronnie |
Ciao katia,prova questo codice.
Sub prova()
Range("C1") = Range("a1") & " " & Range("b1")
InizioGrassetto = InStr(1, Range("c1"), Range("b1"))
Range("c1").Characters(InizioGrassetto).Font.Bold = True
End Sub
| |
|
| Ciao big ronnie di
Apoben64 |
Scusa big , il tuo codice lo hai provato ? a me
darebbe tutto grassetto ! |
|
| di Big ronnie |
| Ciao luca, provato e funzionante |
|
| Giusto ! di Apoben64 |
| Hai ragione, funziona |
|
| Per luca e big ronnie di
Katia |
Grazie a luca e grazie a big ronnie - la macro
funziona solo una spiegazione potresti descrivermi i passaggi
per poterli poi adattare ad altre colonne ossia la prima
istruzione unisce il contenuto delle celle a1 e b1 le altre due
istruzioni non le capisco potresti indicarmi il contrario
ossia se volessi rendere in grassetto il contenuto della cella
a1 e non b1 cosi' lo confronto e cerco di capirlo
|
|
| Per katia di Apoben64 |
La sintassi dell'istruzione che ha usato big ronnie
la puoi trovare nel sito :
http://excelvba.altervista.org/corso/sintassi6.html ciao
! |
|
| Per luca di Katia |
| Scusa luca non vorrei essere rompiscatole ma quando
digito il link mi dice errore 404 o la pagina non esite piu' o e
stata spostata |
|
| Big ronnie di Enzo |
Scusate l'intromissione ma anche a me servirebbe
sapere cosa vogliono dire le stringhe qui sotto
InizioGrassetto = InStr(1, Range("c1"), Range("b1"))
Range("c1").Characters(InizioGrassetto).Font.Bold = True
End Sub
| |
|
| di Apoben64 |
Nel corso base di questo sito si può trovare la
spiegazione della funzione usata da big ronnie; in questo caso si fà
uso di una variabile che si interpone nel cella propriietà
"carattere" , evidenziando in grassetto la seconda riga di testo
della cella.
Funzioni di manipolazione delle stringhe
La tabella seguente, riassume alcune delle funzioni predefinite di Visual Basic per manipolare le Stringhe.
Funzione Descrizione Esempio Risultato
Len() Determina la lunghezza di una stringa NomeVar = Len("Stringa") 7
LCase() Converte i caratteri da maiuscoli a minuscoli NomeVar = LCase("Stringa") stringa
UCase() Converte i caratteri da minuscoli a maiuscoli NomeVar = UCase("Stringa") STRINGA
StrReverse() Inverte le stringhe NomeVar = StrReverse("Stringa") agnirtS
Left() Estrae i primi caratteri di una stringa NomeVar = Left("Stringa", 3) Str
Right() Estrae gli ultimi caratteri di una stringa NomeVar = Right("Stringa", 3) nga
Mid() Estrae i caratteri di una stringa NomeVar = Mid("Stringa", 3,4) ring
InStr() Trova una parte di stringa su un’altra NomeVar = InStr("Stringa", "n") 5
LTrim() Elimina tutti gli spazi iniziali NomeVar = LTrim(" Stringa ") "Stringa "
RTrim() Elimina tutti gli spazi finali NomeVar = RTrim(" Stringa ") " Stringa"
Trim() Elimina tutti gli spazi iniziali e finali NomeVar = Trim(" Stringa ") "Stringa"
CStr() Converte in una stringa NomeVar = CStr(10) "10"
*CInt() Converte in un numero intero NomeVar = CInt("10") 10
*Ogni tipologia di dato possiede la propria funzione di conversione: CDbl(); CSng(); CLng(); Cbool(); CByt(); Cdate().
| |
|
| di Apoben64 |
Ovviamente questa è la funzione.... 
InStr() Trova una parte di stringa su un’altra NomeVar = InStr("Stringa", "n") 5
| |
|
| Per katia ed enzo di Big
ronnie |
La variabile iniziograssetto sfrutta la funzione
instr([inizio, ]stringa1, stringa2[, confronto]) (questa è la
sintassi) che cerca una stringa(stringa2)all'interno di
un'altra(stringa1 stringa madre) e quando la trova da come risultato
il valore(numero di tipo long) della posizione della prima lettera
di string2.nel nostro caso inizio dalla prima posizione(1) di
stringa1 la ricerca e trovo "blu" parola cercata in c1(stringa1
stringa madre) alla posizione 5.assegno questo valore alla var.
iniziograssetto e dico che dal quinto carattere in poi in
range("c1") deve essere tutto in grassetto(seconda riga di
codice).comunque vi invito a vedere il visualizzatore degli oggetti
nell'editor di visual basic in excel dove vi viene spiegata la
sintassi e ci sono anche degli esempi.alcune volte non è installato
e dovrete provvedere a questo con il disco di excel.infine per katia
per vedere "a1" in grassetto cambia nella riga iniziograssetto "b1"
con "a1" ed il gioco è fatto.spero di essere stato esauiente,ciao e
fatemi sapere.
|
|
| Correzione per katia di Big
ronnie |
Mi correggo,per vedere soltanto "a1" in grassetto
devi dopo range("c1").characters(iniziagrassetto).font.bold = true
aggiungere range("c1").characters(len(range("a1")+1).font.bold =
false.devi fare questo perchè se no vedresti tutto in
grassetto.ulteriore spiegazione: il grassetto si ottiene con
.font.bold = true ed inoltre len(range("a1") mi da il numero di
lettere che forma la stringa range("a1"). |
|
| Per katia e big ronnie di
Apoben64 |
Hai ragione , anche a me mi dà errore , comunque se
vai nel corso base trvai la sezione -funzioni di manipolazione delle
stringhe- ringraziamo anche big ronnie per la sua lezione !.
a presto  |
|
| Per apoben64 di Big
ronnie |
Scusami luca ma non ho capito bene cosa mi stai
dicendo.ho provato la macro con l'aggiunta dell'ultima riga e
funziona bene.quello che ho capito io è che katia voleva vedere un
esempio della parola "mare" in grassetto e la parola "blu" non in
grassetto,quindi da qui la mia spiegazione.allego il codice per
quest'ultimo esempio.
Sub prova1()
Range("C1") = Range("a1") & " " & Range("b1")
InizioGrassetto = InStr(1, Range("c1"), Range("a1"))
Range("c1").Characters(InizioGrassetto).Font.Bold = True
Range("c1").Characters(Len(Range("a1")) + 1).Font.Bold = False
End Sub | |
|
| Per big ronnie di
Apoben64 |
Ci siamo fraintesi , mi riferivo a katia in
relazione all' accesso alla sessione del corso. comunque
complimenti hai fatto un buon lavoro !alla prossima ! |
|
| di Katia |
Grazie a tutti per l'interessamento |
|
|