Domanda rapida



  • Domanda rapida
    di Raf (utente non iscritto) data: 13/01/2016 14:12:48

    ciao, ho un file excel contenente nomi di paesi del mondo in italiano che devo convertire in inglese (per essere poi inseriti su un'altra colonna). Mi spiego meglio: dovro' impostare Germany=Germania, Francia=France etc in modo tale da copiare (da un altro file) la lista in italiano ed excel dovrà convertirla in inglese.
    Sapete aiutarmi?
    Raf


  • ricopia celle nella posizione di origine
    di Franco08 data: 13/01/2016 14:26:19

    buongiorno
    premetto che sono un neofita di VBA, e con molto sforzo ho creato una macro che cerca in un foglio un certo Dato che può essere presente in piu' celle, quindi in colonna "A" alla riga corrispondente il dato trovato inserisco un flag "X" che mi permette a termine ricerca di effettuare un filtro e visualizzare le sole righe contenenti il Dato cercato.
    ho implementato la macro con una operazione che evidenzia il dato, visto che all'interno delle celle sono presenti altri dati.
    il mio problema però adesso e' che prima di evidenziare, vorrei salvare il contenuto della cella in un altro foglio, e all'avvio di una seconda ricerca ricopiare i dati di nella loro posizione di origine.
    questo perche' le celle contengono dati e testi magari con colori diversi.
    grazie

     
    Sub FLAG_Scrivi(DatoDaCercare As Variant) ' stabilisco il nome della routine e il relativo argomento
        
        Dim r As Range    ' dichiaro r come variabile range
        Dim s As String   ' dichiaro s come variabile stringa
        Dim i As Integer  ' dichiaro i come variabile integer
        Dim n As Integer  ' dichiaro n come variabile integer
        Dim a As Variant  ' dichiaro a come variabile variant
       
        
        
        
            With Worksheets("Foglio1")
            'nomino l'istruzione with che mi permette di richiamare l'oggetto con il carattere punto
             
                 n = Len(DatoDaCercare)
                 'associo alla variabile "n" il numero di caratteri della variabile DatoDaCercare
            
                 Set r = .Cells.Find(DatoDaCercare, LookIn:=xlValues)
                 ' attribuisco alla variabile "r" il risultato della ricerca del DatoDaCercare
              
                 s = r.Address
                 'associo alla variabile "s" l'indirizzo della cella "r" che contiene il DatoDaCercare
                        
                
                 a = InStr(Range(s), DatoDaCercare)
                 'assegno alla variabile "a" la posizione all'interno del range indicato della stringa DatoDaCercare
    
    
                 Range(s).Characters(Start:=a, Length:=n).Font.ColorIndex = 3
                 'a partire dalla posizione indicata dala variabile "a" e per il numero di caratteri indicato da "n"
                 'modifico il colore dei caratteri
    
    
           If Not r Is Nothing Then
           'se r e' diverso da zero
                 
              
                Do
                    .Range("A" & r.Row).Value = "X"
                    'nella colonna "A" alla riga corrispondente la cella che contiene il DatoDacercare
                    'scrivo il flag "X"
                  
    
                    Set r = .Cells.FindNext(r)
                    'proseguo la ricerca all'interno delle celle
                 
                  
                     
                    a = InStr(r, DatoDaCercare)
    
    
                    r.Characters(Start:=a, Length:=n).Font.ColorIndex = 3
    
                    
                    
                Loop While Not r Is Nothing And s <> r.Address  ' ciclo l'operazione di scrittura del carattere "X"
                                                                'e della modifica al colore del dato cercato
                                                                'fino a quando non si verifica la condizione di
                                                                'r non e' valore "0" e "s" diverso da r.Address
             
               
             End If
                
        End With
           
            
    End Sub
    
    


  • ricopia celle nella posizione di origine
    di Franco08 data: 13/01/2016 14:27:18

    buongiorno
    premetto che sono un neofita di VBA, e con molto sforzo ho creato una macro che cerca in un foglio un certo Dato che può essere presente in piu' celle, quindi in colonna "A" alla riga corrispondente il dato trovato inserisco un flag "X" che mi permette a termine ricerca di effettuare un filtro e visualizzare le sole righe contenenti il Dato cercato.
    ho implementato la macro con una operazione che evidenzia il dato, visto che all'interno delle celle sono presenti altri dati.
    il mio problema però adesso e' che prima di evidenziare, vorrei salvare il contenuto della cella in un altro foglio, e all'avvio di una seconda ricerca ricopiare i dati di nella loro posizione di origine.
    questo perche' le celle contengono dati e testi magari con colori diversi.
    grazie

     
    Sub FLAG_Scrivi(DatoDaCercare As Variant) ' stabilisco il nome della routine e il relativo argomento
        
        Dim r As Range    ' dichiaro r come variabile range
        Dim s As String   ' dichiaro s come variabile stringa
        Dim i As Integer  ' dichiaro i come variabile integer
        Dim n As Integer  ' dichiaro n come variabile integer
        Dim a As Variant  ' dichiaro a come variabile variant
       
        
        
        
            With Worksheets("Foglio1")
            'nomino l'istruzione with che mi permette di richiamare l'oggetto con il carattere punto
             
                 n = Len(DatoDaCercare)
                 'associo alla variabile "n" il numero di caratteri della variabile DatoDaCercare
            
                 Set r = .Cells.Find(DatoDaCercare, LookIn:=xlValues)
                 ' attribuisco alla variabile "r" il risultato della ricerca del DatoDaCercare
              
                 s = r.Address
                 'associo alla variabile "s" l'indirizzo della cella "r" che contiene il DatoDaCercare
                        
                
                 a = InStr(Range(s), DatoDaCercare)
                 'assegno alla variabile "a" la posizione all'interno del range indicato della stringa DatoDaCercare
    
    
                 Range(s).Characters(Start:=a, Length:=n).Font.ColorIndex = 3
                 'a partire dalla posizione indicata dala variabile "a" e per il numero di caratteri indicato da "n"
                 'modifico il colore dei caratteri
    
    
           If Not r Is Nothing Then
           'se r e' diverso da zero
                 
              
                Do
                    .Range("A" & r.Row).Value = "X"
                    'nella colonna "A" alla riga corrispondente la cella che contiene il DatoDacercare
                    'scrivo il flag "X"
                  
    
                    Set r = .Cells.FindNext(r)
                    'proseguo la ricerca all'interno delle celle
                 
                  
                     
                    a = InStr(r, DatoDaCercare)
    
    
                    r.Characters(Start:=a, Length:=n).Font.ColorIndex = 3
    
                    
                    
                Loop While Not r Is Nothing And s <> r.Address  ' ciclo l'operazione di scrittura del carattere "X"
                                                                'e della modifica al colore del dato cercato
                                                                'fino a quando non si verifica la condizione di
                                                                'r non e' valore "0" e "s" diverso da r.Address
             
               
             End If
                
        End With
           
            
    End Sub
    
    


  • ricopia celle nella posizione di origine
    di Franco08 data: 13/01/2016 14:27:33

    buongiorno
    premetto che sono un neofita di VBA, e con molto sforzo ho creato una macro che cerca in un foglio un certo Dato che può essere presente in piu' celle, quindi in colonna "A" alla riga corrispondente il dato trovato inserisco un flag "X" che mi permette a termine ricerca di effettuare un filtro e visualizzare le sole righe contenenti il Dato cercato.
    ho implementato la macro con una operazione che evidenzia il dato, visto che all'interno delle celle sono presenti altri dati.
    il mio problema però adesso e' che prima di evidenziare, vorrei salvare il contenuto della cella in un altro foglio, e all'avvio di una seconda ricerca ricopiare i dati di nella loro posizione di origine.
    questo perche' le celle contengono dati e testi magari con colori diversi.
    grazie

     
    Sub FLAG_Scrivi(DatoDaCercare As Variant) ' stabilisco il nome della routine e il relativo argomento
        
        Dim r As Range    ' dichiaro r come variabile range
        Dim s As String   ' dichiaro s come variabile stringa
        Dim i As Integer  ' dichiaro i come variabile integer
        Dim n As Integer  ' dichiaro n come variabile integer
        Dim a As Variant  ' dichiaro a come variabile variant
       
        
        
        
            With Worksheets("Foglio1")
            'nomino l'istruzione with che mi permette di richiamare l'oggetto con il carattere punto
             
                 n = Len(DatoDaCercare)
                 'associo alla variabile "n" il numero di caratteri della variabile DatoDaCercare
            
                 Set r = .Cells.Find(DatoDaCercare, LookIn:=xlValues)
                 ' attribuisco alla variabile "r" il risultato della ricerca del DatoDaCercare
              
                 s = r.Address
                 'associo alla variabile "s" l'indirizzo della cella "r" che contiene il DatoDaCercare
                        
                
                 a = InStr(Range(s), DatoDaCercare)
                 'assegno alla variabile "a" la posizione all'interno del range indicato della stringa DatoDaCercare
    
    
                 Range(s).Characters(Start:=a, Length:=n).Font.ColorIndex = 3
                 'a partire dalla posizione indicata dala variabile "a" e per il numero di caratteri indicato da "n"
                 'modifico il colore dei caratteri
    
    
           If Not r Is Nothing Then
           'se r e' diverso da zero
                 
              
                Do
                    .Range("A" & r.Row).Value = "X"
                    'nella colonna "A" alla riga corrispondente la cella che contiene il DatoDacercare
                    'scrivo il flag "X"
                  
    
                    Set r = .Cells.FindNext(r)
                    'proseguo la ricerca all'interno delle celle
                 
                  
                     
                    a = InStr(r, DatoDaCercare)
    
    
                    r.Characters(Start:=a, Length:=n).Font.ColorIndex = 3
    
                    
                    
                Loop While Not r Is Nothing And s <> r.Address  ' ciclo l'operazione di scrittura del carattere "X"
                                                                'e della modifica al colore del dato cercato
                                                                'fino a quando non si verifica la condizione di
                                                                'r non e' valore "0" e "s" diverso da r.Address
             
               
             End If
                
        End With
           
            
    End Sub
    
    


  • Risposta Rapida
    di Cucù data: 13/01/2016 14:27:52

    Scusate ma ho risposto ad un altro utente...


  • Domanda rapida
    di Raf (utente non iscritto) data: 13/01/2016 14:40:47

    Perdonatemi ma sono assolutamente un neofita di Excel (Excel 2007) e non ho capito la procedura che mi avere scritto....esiste una formula "semplice"?



  • di Luca73 data: 13/01/2016 14:48:41

    Per darti una risposta bisogna capire
    a) come iimporti il nome in italiano
    b) hai una colonna di conversioni?

    allega il tuo file per capire come e cosa vuoi fare.

    Ciao
    Luca





  • di alfrimpa data: 13/01/2016 14:50:19

    Rispondo a Raf

    Ma hai una tabella dove in colonna A hai i nomi degli stati in italiano ed in colonna B in inglese?

    Se si ti basta un cerca.vert

    Se non è così spiega meglio il problema magari allegando file di esempio.

    Alfredo

    @ Cucù: ma a chi hai sposto? a Raf o a Franco08?





  • di Cucù data: 13/01/2016 15:07:22

    @ alfrimpa
    Nessuno dei due... Rispondevo a Ornello... Altra discussione O_o


  • Domanda rapida
    di Raf (utente non iscritto) data: 13/01/2016 16:48:04

    Ciao Luca73, ciao alfrimpa,

    non riuscendo ad allegare il file vi spiego in breve: nella colonna A inserisco i nomi dei paesi in italiano (a1 ITALIA, A2 GERMANIA ETC) e nella colonna B vorrei che venissero tradotti nel loro corrispettivo inglese



  • di alfrimpa data: 13/01/2016 16:57:31

    Ciao Raf

    Excel non è un traduttore!

    Quindi tu devi avere una tabella che abbia in una colonna l'italiano e di fianco l'inglese.

    Alfredo




  • Domanda rapida
    di Raf (utente non iscritto) data: 14/01/2016 10:59:52

    Ciao Alfredo,
    che Excel non sia un traduttore è chiaro! La mia domanda, ripeto, è la seguente:
    Colonna A: scrivero' i nomi in italiano
    Colonna B: scrivero' il corrispettivo in inglese
    Colonna C: qui ho bisogno che, quando nella colonna A incollero' i nomi in italiano, nella colonna C AUTOMATICAMENTE mi inserisca il loro corrispettivo in inglese...è possibile?



  • di alfrimpa data: 14/01/2016 11:53:53

    Ciao Raf

    Da quello che dici (se capisco bene) sembrerebbe che un CERCA.VERT possa essere sufficiente ma, forse, la sto facendo troppo facile.

    Allega un file di esempio con la situazione di partenza ed il risultato desiderato.

    Alfredo





  • di Raf (utente non iscritto) data: 14/01/2016 13:27:11

    ok allora ti allego il file e ti spiego brevemente: devo fare una comparazione tra 2016 e 2015 in termini di presenze per nazionalità. Chiaramente, dopo aver compilato i campi, attivero' una macro che mi permetterà di fare una classifica 2016 vs 2015. Il problema è che, mentre per il 2016 i nomi dei paesi dovranno essere inseriti in inglese, per il 2015 sono stati inseriti in italiano. Cio' comporta, quindi, l'impossibilità di comparare i due anni: potro' farlo solo se i nomi dei paesi 2016 e 2015 coincideranno....spero di esser stato chiaro



  • di alfrimpa data: 14/01/2016 14:06:36

    Ma sono i dati della colona N che devono essere trasformati da italiano ad inglese?

    Continuo a non capire.

    Alfredo





  • di Raf (utente non iscritto) data: 14/01/2016 14:44:54

    Nella colonna H inseriro' di volta in volta i nomi in inglese mentre la colonna N dovrà a sua volta avere i nomi in inglese (il paragone sarà infatti fra queste due colonne con le relative presenze accanto). Visto che la colonna N è già stata compilata in italiano....ho la necessità di creare una colonna nascosta o qualcosa di simile che mi dia la possibilità, inserendo i nomi in italiano, che compaiano nella colonna N in inglese (quindi in breve la colonna N sarà vuota ed io, inserendo IN ITALIANO i nomi in una colonna nascosta, dovranno comparire in inglese nella colonna N)



  • di Luca73 data: 14/01/2016 15:00:53

    Ciao
    io farei così
    in foglio 2 la tabella di conversione come sotto riportata

    e in E1 la seguente formula
    =SE.ERRORE(CERCA.VERT(CERCA.VERT(B6;Foglio2!A:B;2;FALSO);$N$3:$O$379;2;FALSO);0)

    il solo problema sono le liste che sono diverse.

    Tutto questo senza colonne nascoste ma facendo una "traduzione" direttamente nella formula in colonna E.

    Ciao
    Luca 
     
    Colonna A Colonna B
    Italy Italia
    France Francia
    Spain Spagna
    Australia Australia
    USA USA
    Japan Giappone
    Germany Germania
    Switzerland Svizzera
    Greece Grecia
    UK Gran Bretagna
    Brazil Brasile
    Sweden Svezia
    Canada Canada
    Argentina Argentina
    Russia Russia






  • di Raf (utente non iscritto) data: 14/01/2016 15:44:19

    Perdonami non ho ben capito: devo inserire la formula in E1 ma di quale foglio?Inoltre in foglio 2 devo inserire la tabella ma...in quali colonne?



  • di Luca73 data: 14/01/2016 16:18:01

    Ciao
    la tabella in foglio 2 colonne A (inglese) e B (Italiano)
    la formula in E1 del foglio 1 (è una modifica di qualla già esistente.

    Ciao
    Luca





  • di Raf (utente non iscritto) data: 14/01/2016 16:42:07

    ti ho riallegato il file con le modifiche fatte secondo tue info ma...non cambia nulla (sicuramente sbaglio qualcosa io)



  • di Luca73 data: 14/01/2016 16:46:11

    OK scusa la formula va incollata in E6 e poi copiata in basso.
    Ciao
    Luca






  • di Raf (utente non iscritto) data: 15/01/2016 11:07:43

    perdonami....continua a non funzionare!Perchè devo inserirla e6 del foglio 1?io ho seguito cio' che mi hai detto ma nn funziona



  • di Luca73 data: 15/01/2016 11:44:35

    Ciao Ti ho allegato il file
    Come noti non ho tradotto i nomi ho fatto in modo che nella tua tabella in alto a sinistra venissero riempite le celle sotto RN 2015 con i dati presi dalla tabella in colonne da M a Q
    Questo senza "traduzione" diretta ma usando due cerca.vert. il primo cerca nel folgio due lo stato in inglese (dalla colonna B) e me lo rende in itliano e lo usa nel secondo cerca.vert per andare a cercare il valore nella tabella in colonne da M a Q

    Ciao
    Luca





  • di Raf (utente non iscritto) data: 15/01/2016 13:47:24

    Geniale!!!Grazie 1000 e buon week end!