023. Copiare File con VBA

Download PDF

Domanda:

Ho una colonna di Excel dove sono riportati una lista di files (comprensivi di percorso) e in un\’altra colonna il nome di questi files (con percorso destinazione) che integrano nel nome alcune cose. Il problema è: con VBA come faccio a realizzare una istruzione che mi copi i files da una parte all\’altra con un ciclo? Vi ringrazio

Risposta:
posto in un foglio la colonna A con il nome del file da copiare comprensivo di percorso ed estensione,
ed una colonna B il nome del file da incollare comprensivo di percorso ed estensione,
può utilizzare il seguente codice:

Continua a leggere

022. Normalizzare DB con l’aiuto dell’algoritmo Soundex

Download PDF

Domanda:

“storicamente nell’arco di alcuni decenni, differenti persone in differenti modi hanno raccolto dati. La raccolta ammonta ad un totale di circa 3.000 celle all’anno per ogni foglio ed è un incubo perchè lo stile dei fogli è stato stravolto dall’avvicendarsi eterogeneo di decine di collaboratori diversi che si sono succeduti nello stesso ufficio a raccogliere i dati. Dati inseriti in maiuscolo, minuscolo, scritti correttamente per intero, abbreviati, storpiati e/o alterati…. cut….dovrei scoprire il modo di far cercare ad Excel variabili più o meno farcite di wildcard singole tipo le ’?’ o ’*’ da vecchio DOS. Per dire: Corso Vittorio Emanuele II lo posso per esempio trovare come CORSO, corso, C.so, C; Vittorio, VITTORIO, V.; Emanuele, Emmanuele o Emanuelle … una cosa da uscire pazzi. Un Vs. collega dal suo blog mi suggeriva: Io metterei tutti i dati in un unico foglio. Ognuno in una sua riga. La prima colonna conterrà l’anno, così non si perde il riferimento.

Poi, la ricerca ne viene probabilmente facilitata anche con l’uso dell’algoritmo Soundex.

…. cut….l’ho incollata in un modulo ma non riesco a trovare il modo di applicarla.”

 

Risposta:

Personalmente non conoscevo questo algoritmo e ne ho trovato una definizione al seguente link:

http://www.excelvba.it/Forum/story/Visual_Basic_for_Applications/Soundex.html

Soundex è un algoritmo di fonetica per l’indicizzazione di parole secondo il loro suono o pronuncia. cut… L’obiettivo è di poter raggruppare parole omofone (dal suono simile) affinché possano essere abbinate per un ricerca veloce, nonostante differenze o errori di ortografia. cut…Ad esempio, MATTONE è codificato come M350; MATTINO e METANO hanno la stessa codifica M350 (e infatti hanno un suono simile)
Continua a leggere

021. Individuare duplicati

Download PDF

Domanda:

Buongiorno a tutti, avrei bisogno del vostro aiuto se possibile.
io ho una colonna excel piena di codici alfanumerici, questa colonna è in costante aggiornamaento perchè ogni giorno vengo inseriti alcuni codici.
io avrei bisogno di un modo per sapere e evidenziare se il codice che sto inserendo è già presente nell’elenco. non sono esperto in materia. ma per lavoro sto cercando di imparare a fare più cose possibili.

Risposta:

Il problema può essere risolto in due modi:

a) Tramite codice VBA

Public Sub VerificaDuplicati()

Last_Row = Sheet1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Range(Cells(2, 1), Cells(Last_Row, 1)).Interior.Pattern = xlNone

For i = Last_Row To 2 Step -1     

Conteggio = Application.WorksheetFunction.CountIf(Columns(1), Sheet1.Cells(i, 1))     

If Conteggio > 1 Then        
   Sheet1.Cells(i, 1).Interior.Color = 255     
End If Next i

End Sub

1) Con “Last_Row” identifico l’ultima riga non vuota del foglio che contiene i dati.
2) Identifico tutto il range contenente i codici “Range(Cells(2, 1), Cells(Last_Row, 1))”
e per esso imposto nessun colore di riempimento “.Interior.Pattern = xlNone”
3) Ciclo dall’ultima alla seconda riga del range precedente
“For i = Last_Row To 2 Step -1 …. Next For”
E’ necessario impostare “Step -1” per ciclare dal basso all’alto
4) Per ogni cella analizzata dal ciclo valorizzo una variabile “Conteggio”
con il conteggio delle volte in cui appare il valore della cella analizzata
5) Se la variabile “Conteggio” assume un valore maggiore di 1,
il codice è presente più di una volta e quindi coloro la cella di rosso
“Sheet1.Cells(i, 1).Interior.Color = 255”

B) Utilizzando la formattazione condizionale

Questo è il file d’esempio con le due soluzioni:

VerificaDuplicati

Riccardo Vincenti

020. Estrarre dati da file diversi senza aprirli ad uno ad uno

Download PDF

Domanda:

Ho una cartella contenente diversi file excel che per comodità chiamerò a.xls, b.xls, c.xls, ecc..
Ognuno di questi file ha nel foglio 1 una tabella (identica per tutti i file) con due colonne di dati (a e b)
La mia esigenza è quella di trovare una formula/macro che sommi su un altro foglio (totale.xls) automaticamente tutte le singole celle delle colonne a e b.
Non vorrei aprire i singoli file per fare le somme ma vorrei poter aprire il solo file totale.xls

Risposta:

Innanzitutto facciamo un pò d’ordine nei report da gestire creando una cartella “ARCHIVIO REPORT”
all’interno della quale andremo a creare delle sottocartelle per ciascun Anno_Mese.
All’interno di queste sottocartelle salveremo i report.

La macro lanciata tramite il bottone “Aggiorna” esegue le seguenti operazioni:

Continua a leggere

018. Cerca.Vert

Download PDF

Domanda:

salve a tutti un piccolo aiutino prima che possa impazzire con questa formula vi spiego il problema:
in un foglio excel nella cella n2 devo mettere questa formula =SE(I2=C101;D101;0) perche nelle celle c101 c\’è una critta e anche nella cella d101. le scritte sono fino alle celle c401 e d401. volevo sapere come posso prolungare la formula da c101 a c401 e d101 a d 401 senza mettere sempre nella cella i2 questo =SE(I2=C101;D101;0)+se=SE(I2=C102;D102;0)+SE(I2=C103;D103;0) e cosi via … grazie in anticipo e buona giornata

Risposta:

Per risolvere il suo problema è sufficiente utilizzare la funzione Cerca.Vert
che confronta un valore all’interno di un range di celle e restituisce il valore cercato.
Riferendomi al suo caso, Continua a leggere

017. Creare file con VBA ed inviarli via mail (avanzato)

Download PDF

Ciao a tutti,

in questo giorni ho modificato il Tool che invia allegati tramite email seguendo alcune necessità di Alessandra.
Le modifiche sono le seguenti:
1) verifica della presenza dei nomi inseriti nella base dati con quelli presenti in elenco
e segnalazione di eventuali assenze
2) selezione attraverso di un file dialog della cartella dove salvare gli allegati
3) creazione di un file “xls” o “xlsx” in base alla versione Excel utilizzata
4) scelta tra invio del file allegato in Excel o in Pdf
5) inserimento nell’allegato di un’intestazione e/o logo aziendale

Ecco il file avanzato:
Tool crea file da elenco – Excel o PDF

Per chi fosse interessato a come funziona il codice…. buona lettura!

Continua a leggere

015. Generatore quiz patente

Download PDF

Domanda:

Ciao, Ho in un file excel circa 700 domande per fare dei quiz per la patente catalogate in ordine numerico, con altrettante risposte. C\’è la possibilità, in un altro foglio dello stesso file, di selezionare casualmente 30 domande per la prova teorica? Spero di essermi spiegato.
saluti

Risposta:

per risolvere il suo problema ho operato nel seguente modo:

1)    Nel foglio “Elenco completo” ho inserito 700 domande fittizie nella colona A
2)    Ho inserito nella colonna B la formula “=ROUND(RAND()*(20000-1)+1;0)”
(se utilizza la verisone italiana Excel le indichera la sintassi in italiano)
RAND restituisce un numero casuale tra due estremi (ho scelto arbitrariamente 1 e 20.000)
ROUND arrotonda il risultato della formula RAND a zero decimali

Continua a leggere

014. Classifica tramite VBA – v2

Download PDF

Questo articolo segue al precedente “Classifica tramite VBA” di cui è un evoluzione.
L’esigenza del nostro lettore era quella di avere la classifica per categoria
in un’unica colonna, dal momento che dovrà gestire fino a 10 categorie contemporaneamente.
Ho modificato quindi il codice permettendo di gestire N categorie contemporaneamente
senza colonne dedicate.

Ecco la versione aggiornata del file:

Continua a leggere