Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro cancella tutte le parole tranne la prima

Ultimo Aggiornamento: 02/03/2017 20:31
Post: 79
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
18/01/2017 21:14

Buona sera a tutti nel foglio2 partendo dalla cella D3 ho delle righe; per esempio ho messo il nome di alcuni membri del Forum.Come vedete il nome è preceduto da uno spazio e successivamente ci sono da 2 parole a 3 e chiude gatto di marmo con 5 parole.Mi servirebbe una macro con pulsante chiamata cancella parole che mi copia nel foglio3 partendo sempre da D3 solo la prima parola [SM=x423024] .Grazie Buona serata a tutti.
Post: 1.932
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
19/01/2017 00:47

ciao

nella stringa e presente il carattere 160
quindi la sub() in questione da mettere nel foglio2 e' questa


Option Explicit
Sub Estrai_nome()
Dim i As Long
Dim nome As String, Sh As String
Sh = "Foglio3"
For i = 3 To Cells(Rows.Count, "D").End(xlUp).Row
nome = Cells(i, "D").Value
Sheets(Sh).Cells(i, "D") = _
Trim(Replace(Mid(nome, 1, Application.Find(Chr(160), nome, 5)), Chr(160), ""))
Next i
End Sub



riciao
visto che non hai ancora risposto ti metto anche la formula di excel
foglio3 D3

=ANNULLA.SPAZI(SOSTITUISCI(STRINGA.ESTRAI(Foglio2!D3;1;TROVA(CODICE.CARATT(160);Foglio2!D3;5));CODICE.CARATT(160);""))




[Modificato da locatevaresino 19/01/2017 09:37]
Ciao da locate
excel 2007 / 13
Post: 79
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
20/01/2017 18:27

Errore di run time 13
Ciao Locate grazie per il codice.
Post: 80
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
20/01/2017 18:33

Errore di Run Time 13
Ciao Locate Varesino. Se nella colonna D è presente una cella Vuota il codice non funziona. Si potrebbe modificare cancellando tutte le celle vuote prima di lanciare la macro? Grazie Matteo
Post: 1.934
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
20/01/2017 19:37

ciao

basta inserire un controllo di errore
in VBA


Option Explicit
Sub Estrai_nome()
Dim i As Long
Dim nome As String, Sh As String
Sh = "Foglio3"
For i = 3 To Cells(Rows.Count, "D").End(xlUp).Row
nome = Cells(i, "D").Value
If Len(nome) = 0 Or Mid(nome, 1, 1) <> Chr(160) Then ''controllo
Sheets(Sh).Cells(i, "D") = nome
Else
Sheets(Sh).Cells(i, "D") = _
Trim(Replace(Mid(nome, 1, Application.Find(Chr(160), nome, 5)), Chr(160), ""))
End If
Next i
End Sub



in formula excel

=SE.ERRORE(ANNULLA.SPAZI(SOSTITUISCI(STRINGA.ESTRAI(Foglio2!D3;1;TROVA(CODICE.CARATT(160);Foglio2!D3;5));CODICE.CARATT(160);""));Foglio2!D3)



Ciao da locate
excel 2007 / 13
Post: 81
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
01/03/2017 20:09

Macro cancella tute le parole tranne la prima subito nel foglio1
Buona sera a tutti. Locate scusami ,ho formattato il pc e ho un combinato un guaio. Non riesco più ad eseguire la formula correttamente. Allego il file parola xls. Il
foglio 1 e vuoto a parte D1 D2 D3.Il Foglio 2
è stato completato da me in modo manuale ed è
il risultato che voglio. Ma Sarebbe possibile
eseguendo la macro avere il risultato subito qua nel foglio 1.In poche parole ho bisogno un macro che in D1 nel foglio1 ho mela.In D2
zucchero,in D3 piove.Con un pulsante.Non riesco propio.Grazie anticipatamente Matteo [SM=x423065]
Post: 82
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
02/03/2017 19:08

La macro funziona ma non estrae solo la prima parola ma tutte
Allego foto .Saluti a tutti Matteo
Post: 5.082
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
02/03/2017 19:31

Prima parola
Ciao ed un saluto a Locate, questa una macro che risolve.

Sub dividi()
Dim r, d, dd, x, sh1 As Worksheet, sh2 As Worksheet

Set sh1 = Worksheets("Foglio1")
Set sh2 = Worksheets("Foglio2")

sh2.Activate
Application.ScreenUpdating = False
r = sh2.Cells(Rows.Count, 4).End(xlUp).Row
sh2.Range(Cells(1, 4), Cells(r, 4)).ClearContents

sh1.Activate
r = sh1.Cells(Rows.Count, 4).End(xlUp).Row
For x = 1 To r
    d = sh1.Cells(x, 4)
    dd = Split(Trim(d))
    sh2.Cells(x, 4) = dd(0)
Next x

sh2.Activate
Application.ScreenUpdating = True
sh2.Cells(1, 4).Select
End Sub


Ciao By Sal [SM=x423051]

[Modificato da by sal 02/03/2017 19:32]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 83
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
02/03/2017 20:31

Macro perfetta
Ciao Sal grazie per il codice.Complimenti [SM=x423065]
Vota: 15MediaObject0,0019
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:11. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com