Condividi:        

excel

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

excel

Postdi trittico69 » 05/04/10 21:01

in foglio xxxxx,di un file excel, che copia i nomi e cognomi da un altro foglio yyyyyy dove a volte vengono scritti nome e cognome entrambi nella colonna “A” e a volte nome in colonna “A” e cognome in colonna “B” ….potesse far si che nel foglio xxxxxx i nomi si copino sempre nella colonna “A” e i cognomi sempre nella colonna “B”
cosa devo aggiungere nella formula che si trova in tutte le celle?
='RUB. FEMMINILE'!A31
e siccome a volte vengono scritti in minuscolo e a volte in maiuscolo cosa devo aggiungere perché i nomi vengano copiati sempre in maiuscolo?
Spero si essere stato chiaro…..grazie!
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Sponsor
 

Re: excel

Postdi ricky53 » 06/04/10 00:31

Ciao,

e come si fa a distinguere che quanto scritto sia un nome?
Esempio: con i doppi nomi oppure con i cognomi costituiti da due parole?
In prima istanza si potrebbe separare il testo contenuto nelle celle in due parti quando si trova il primo spazio ma ...
capisci ben che ci vogliono delle regole.

Una cosa fattibile è trasformare in maiuscolo il contenuto delle varie celle
se "A" è la tua colonna in un colonna di appoggio (ES. "Z") IN "Z2" scrivi:
=MAIUSC(A2)

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel

Postdi Flash30005 » 06/04/10 09:06

Prova questa macro
Codice: Seleziona tutto
Sub CreaElenco()
Righe2 = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Foglio2").Range("A1:F" & Righe2).ClearContents
Righe = Sheets("Foglio1").Range("A2").CurrentRegion.Rows.Count
Sheets("Foglio2").Range("A1").FormulaR1C1 = "NOME"
Sheets("Foglio2").Range("B1").FormulaR1C1 = "COGNOME"
For RR1 = 2 To Righe
    Nome = UCase(Sheets("Foglio1").Cells(RR1, 1).Value)
    Cognome = UCase(Sheets("Foglio1").Cells(RR1, 2).Value)
    If Cognome = "" Then
        Cognome = UCase(Mid(Nome, InStr(Nome, " ") + 1, Len(Nome)))
        Nome = UCase(Mid(Nome, 1, InStr(Nome, " ") - 1))
    End If
        Sheets("Foglio2").Cells(RR1, 1).Value = Nome
        Sheets("Foglio2").Cells(RR1, 2).Value = Cognome
Next RR1
Range("A1").Select
End Sub

Prevede una prima riga di testata (comincia ad elaborare dalla riga 2 del foglio1 e inizia a trascrivere nella riga 2 del foglio2 creando una testata sulla riga 1 )
Funziona se non ci sono Nomi composti da due parole (tipo Maria Carla Xxxxxxx)
Rispetta le specifiche: quando il nome e cognome si trova nella colonna A non ci sia nulla nella colonna B.

Prova e fai sapere
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: excel

Postdi trittico69 » 07/04/10 16:43

Non ha importanza come capita nome e cognome l’importante è che si dividano in due celle anche se hanno due nomi ES:
Maria Rita Casanova….. in A1 puo andarci sia Maria Casanova sia solo Maria o solo Rita l’importante è che il resto venga scritto in B2…
Per le maiuscole tutto ok….per la macro non so come si fa…o mi spiegate passo passo o un'altra soluzione….
Poi mi servirebbe un'altra cosa….alcuni nomi nel file di origine sono stati scritti dopo aver battuto sulla barra spaziatrice quindi c’è uno spazio che li allontana dall’inizio della cella…c’è una formula che elimini questo spazio e incolonni i nomi a destra della cella?
E poi cercando un nome con”cerca” una volta trovato il nome si posso evidenziare in automatico più celle in corrispondenza del nome? Es: colora rosso da A1 ad A5 della riga del nome trovato e poi cercando il secondo nome la riga di prima ridiventa bianca e il rosso passa al nome successivo…
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel

Postdi Flash30005 » 07/04/10 22:35

Per inserire una macro
apri il foglio di excel deve contenere il Foglio1 con i dati e il Foglio2 completamente vuoto
e dal Menu > Strumenti > macro > Visual Basic Editor
una volta dentro vai sul Menu > Inserisci > Modulo
Incolli l'intero codice postato
Chiudi il vba
rendi attivo il foglio1 (foglio dei dati visibile)
premi F8 appare il nome della macro "CreaElenco"
la selezione e premi il tasto esegui
Per togliere gli spazi usa questa macro (modifica della precedente)
Codice: Seleziona tutto
Sub CreaElenco()
Righe2 = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Foglio2").Range("A1:F" & Righe2).ClearContents
Righe = Sheets("Foglio1").Range("A2").CurrentRegion.Rows.Count
Sheets("Foglio2").Range("A1").FormulaR1C1 = "NOME"
Sheets("Foglio2").Range("B1").FormulaR1C1 = "COGNOME"
For RR1 = 2 To Righe + 1
    Nome = UCase(Trim(Sheets("Foglio1").Cells(RR1, 1).Value))
    Cognome = UCase(Trim(Sheets("Foglio1").Cells(RR1, 2).Value))
    If Cognome = "" Then
        Cognome = Trim(UCase(Mid(Nome, InStr(Nome, " ") + 1, Len(Nome))))
        Nome = Trim(UCase(Mid(Nome, 1, InStr(Nome, " ") - 1)))
    End If
        Sheets("Foglio2").Cells(RR1, 1).Value = Nome
        Sheets("Foglio2").Cells(RR1, 2).Value = Cognome
Next RR1
Range("A1").Select
End Sub

per quanto riguarda i nomi doppi avrai il primo nome nella colonna A e il secondo nome nella colonna B insieme al cognome
del resto può anche accadere che ci sia un cognome composta da due parole come De Paperis.

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: excel

Postdi trittico69 » 08/04/10 00:14

ok domani provo e ti faccio sapere...non mi hai detto per quanto riguarda
cercando un nome con”cerca” una volta trovato il nome si posso evidenziare in automatico più celle in corrispondenza del nome? Es: colora rosso da A1 ad A5 della riga del nome trovato e poi cercando il secondo nome la riga di prima ridiventa bianca e il rosso passa al nome successivo
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel

Postdi Flash30005 » 08/04/10 01:48

Certo che si può fare ma non con cerca occorre una macro
infatti se fai una ricerca nel forum con chiave "Colora celle" o simili
potrai trovare degli esempi esistenti come in questo caso
http://www.pc-facile.com/forum/viewtopic.php?f=26&t=85725

Proprio per questo dovresti dire dove metterai il nome da ricercare, in quale cella

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: excel

Postdi trittico69 » 08/04/10 12:10

Per inserire una macro
apri il foglio di excel deve contenere il Foglio1 con i dati e il Foglio2 completamente vuoto
e dal Menu > Strumenti > macro > Visual Basic Editor
una volta dentro vai sul Menu > Inserisci > Modulo
Incolli l'intero codice postato
Chiudi il vba
rendi attivo il foglio1 (foglio dei dati visibile)
premi F8 appare il nome della macro "CreaElenco"
la selezione e premi il tasto esegui
Per togliere gli spazi usa questa macro (modifica della precedente



quando premo F8 non compare nulla ma se clicco con il muse mi evidenzia tutto dall’inizio fino dove ho ciccato…dove sbaglio?
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel

Postdi Flash30005 » 08/04/10 13:20

Se hai inserito la macro (incollando il codice) nel modulo
i tasti da premere, con il foglio attivo, sono ALT+F8
(e non solo F8, come erroneamente postato da me)

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: excel

Postdi trittico69 » 08/04/10 17:35

mi esce errore e mi evidenzia
Nome = Trim(UCase(Mid(Nome, 1, InStr(Nome, " ") - 1)))
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel

Postdi trittico69 » 08/04/10 19:15

ok risolto...però non mi elimina lo spazio che si trova prima del nome creato dalla barra spaziatrice
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: excel

Postdi Flash30005 » 08/04/10 21:51

Strano :roll:
Prova a sostituire queste due righe
Codice: Seleziona tutto
        Sheets("Foglio2").Cells(RR1, 1).Value = Nome
        Sheets("Foglio2").Cells(RR1, 2).Value = Cognome

Con queste
Codice: Seleziona tutto
        Sheets("Foglio2").Cells(RR1, 1).Value = Trim(Nome)
        Sheets("Foglio2").Cells(RR1, 2).Value = Trim(Cognome)


Vediamo se ora viene tolto lo spazio

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: excel

Postdi trittico69 » 09/04/10 12:02

tutto ok
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41


Torna a Applicazioni Office Windows


Topic correlati a "excel":


Chi c’è in linea

Visitano il forum: Nessuno e 67 ospiti