Estrarre una data da una cella di testo

Download PDF

Un lettore ci chiede:

Buongiorno
Vorrei se possibile estrarre le date dalle seguenti stringhe
esempio
DESENZANO DEL GARDA (BS) 10.04.1986 N.186
SALO’ (BS) 15.02.1946 N.115
EXCEL 2007

Risposta:

La questione  è abbastanza complicata utilizzando solo le formule Excel perché bisgna ricercare il pattern xx.xx.xxxx con “x” una cifra.

Ho quindi preparato una piccola funzione su misura che ricerca all’interno di un testo più lungo una parte con la struttura indicata (xx.xx.xxxx) e lo resituisce.

L’utilizzo della funzione è a dir poco banale:

estrai_data

nello stesso file di esempio che trovate qui sotto è disponibile la stessa funzionalità anche in versione MACRO per chi lo preferisse

Scarica il file di esempio: estrai_data

 

 

Indiretto: un esempio di utilizzo

Download PDF

Un lettore ci chiede:

Ho due colonne di dati squadra ospitante colonna A e squadra ospite colonna B come posso unire i due dati in una sola colonna C con i dati seguendo il seguente ordine C1 dato A1, C2 dato B1, C3 dato A2, C4 dato B2 e così via esiste una funzione? o bisogna scrivere tutto cella per cella. Infatti se cerco di riempire le celle con il mouse in automatico prende il numero della riga.
A prescindere grazie sin d’ora.

Risposta:

Effettivamente Excel non capisce immediatamente come fare per “proseguire” le formule quando con il mouse si cerca di riempire automaticamente le celle dopo aver inserito le prime 2 o quattro formule volute

Per risolvere il problema basta usare la formula INDIRETTO.

Questa funzione permette di comporre le formule in modo automatico: vediamola in azione:

Indiretto

 

Si sfrutta una colonna sulla destra che indica quale è la riga da cui partire. e si incrementa di uno ogni due celle (vedere il file excel allegato per la formula necessaria, è comunque banale)

Si usa poi INDIRETTO per comporre di volta in volta la formula =A2, =B2, =A3, =A3, etc seguendo anche qui una semplice regola.

In questo modo si può tranquillamente “trascinare verso il basso” le formule per avere tutto in automatico!

Ci auguriamo di essere stati di aiuto!

Scarica file di esempio: Indiretto

007. Salvataggio file tramite VBA

Download PDF

Domanda:

vorrei chiederle un controllo del codice seguente, lo scopo del codice è il salvataggio del file in una directory specifica e se la directory esiste, salvare il file con il nome specifico.
in attesa

Sub salvaFile()
 On Error GoTo mess
 Dim p As Worksheet
 Dim Directory As String
 Dim NomeFile As String
 Dim ctrl As Boolean
 Dim x As Integer
 ctrl = True
 x = 1
Set p = Worksheets("R22-3")
Directory = p.Cells(23, 20).Value
 NomeFile = p.Cells(24, 20).Value
Do While ctrl = True
 ctrl = Len(Dir(Directory & NomeFile))
 x = x + 1
 Loop
ChDir Directory
 ActiveWorkbook.SaveAs Filename:=NomeFile, FileFormat:=xlNormal, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
mess:
 msgbox "Errore - Riprovare"
End Sub

Risposta:

Nel codice bisogna apportare 2 modifiche:

1) sostituire ‘Filename:=NomeFile’ con ‘Filename:=Directory & NomeFile’, se ha scritto la directory con ‘\’ alla fine, o in caso contrario con ‘Filename:=Directory & “\” & NomeFile’

2) scrivere Exit Sub prima di mess: altrimenti il messaggio di errore appare anche in assenza di errori

Riccardo Vincenti

006. Cercare parola in un testo – VBA

Download PDF

Domanda:

Salve, volevo sapere se in qualche modo era possibile creare un foglio excel per questo lavoro: Fare una 3 colonne rispettivamente: “titolo film” “produttore” e “attori” e una volta scritti film produttori e attori , una volta ordinato (per esempio) in base ad un particolare attore gli titolo e produttore seguono l’ordinamento dell’attore di quel film. Spero di essermi spiegato bene, grazie della risposta.

Risposta:

nel file allegato trovate la macro per cercare una parola in un testo e restituire le informazioni collegate. Filtra Attore

Riccardo Vincenti

005. Calcolo importo maggiorazioni

Download PDF

Lucia ci ha chiesto:

la cella A1 contiene il valore minuti: 185
i primi 60 minuti vanno pagati tot. euro;
dal 61 a 120 vanno pagati maggiorati del 5%;
dal 121 al 185 vanno pagati maggiorati del 10%.
NOTA: il valore nella cella A1 è variabile.
Che formula devo inserire per il calcolo?
ringrazio anticipatamente per l\’aiuto

—-

Ciao Lucia,

in allegato trovi il file con la formula richiesta

Calcolo maggiorazioni

Riccardo Vincenti

 

004. Aprire FileDialog per selezionare file

Download PDF

Domanda:

Complimenti per il sito…molto interessante
Avrei bisogno di visualizzare un diagramma ad albero (tipo quello che si visualizza con esplora risorse di windows) all\’apertura di excel oppure word, per poterci collegare dei file sia di excel, word, pdf, ecc. in modo di avere una visione generale della struttura del progetto, con possibilità di apertura dei singoli file. Spero di essermi spiegato bene. Saluti

Risposta:

di seguito il codice che lancia il file dialog di Windows
e permette di aprire i file che ti interessano:

Public Sub SelezionaFileDaAprire()

Dim fDialog As Office.FileDialog

Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
Dim selezione As Variant
Dim PercorsoStandard As String

  PercorsoStandard = "C:\"    'inserisci il percorso che desideri aprire di default

With fDialog
    .AllowMultiSelect = False
    .Title = "Seleziona il file da aprire"
    .InitialFileName = PercorsoStandard

    If .Show = -1 Then
        For Each selezione In .SelectedItems
            FileDaAprire = selezione
            ActiveWorkbook.FollowHyperlink Address:=FileDaAprire
        Next
    Else
        MsgBox "Caricamento annullato!", vbInformation  'quanto premi ‘cancella’ la macro si stoppa
        Exit Sub
    End If
End With
Set selezione = Nothing
Set fDialog = Nothing
End Sub

A voi il file:
APRI

Riccardo Vincenti

003. Bloccare riga durante scorrimento

Download PDF

Domanda:

Come posso fare per mantenere sempre in vista il titolo di un foglio di lavoro excel mentre scorro in basso lo stesso foglio. Grazie per la collaborazione.

Risposta:

Per ottenre il risultato puoi usare il ‘Blocca riquadri’ presente nel menu’ ‘Visualizza’.
Potrai scegliere se bloccare la prima riga o un gruppo di righe

Riccardo Vincenti

002. Info su altezza cella tramite VBA

Download PDF

Domanda:

Vorrei sapere se esiste una funzione o istruzione VBA che permette la visualizzazione dell’ALTEZZA delle celle [esempio: in H13 “=CELLA(“larghezza”;G13)”]

Risposta:

Qui abbiamo scritto una semplice funzione che fa quanto richiesto:

Function RiportaAltezzaCella(a As Range) As Double

    Application.Volatile True
    RiportaAltezzaCella = a.Height

End Function

La funzione si aggiorna ogni volta che Excel esegue un ricalcolo. Attenzione quindi: non si aggiorna ogni volta che modificatel l’altezza ma bensi appna utilizzate la cella per un calocolo

potete scaricare qui il file di esempio:

Altezzacella

Riccardo Vincenti

001. Riportare somma tramite VBA

Download PDF

Domanda:

Scopiazzando sul web sono riuscito a creare la seguente macro che
vorrei modificare:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim l As Long
l = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = \”ELENCO GIOCATORI\”
.Cells(1, 2) = \”IMPORTO Assegnato\”
.Cells(1, 1).Name = \”Sommario\”
End With

For Each wSheet In Worksheets
If wSheet.Name <> Me.Name Then
l = l + 1
With wSheet
.Range(\”A1\”).Name = \”Start\” & wSheet.Index
.Hyperlinks.Add Anchor:=.Range(\”A1\”), Address:=\”\”, SubAddress:= _
\”Sommario\”, TextToDisplay:=\”Torna al Sommario\”

End With
Me.Hyperlinks.Add Anchor:=Me.Cells(l, 1), Address:=\”\”, _
SubAddress:=\”Start\” & wSheet.Index, TextToDisplay:=wSheet.Name
End If
Next wSheet
End Sub

questa crea un sommario automatico dei fogli di lavoro
presenti in una cartella excel.
Mi occorrerebbe inserire nella colonna B il totale del foglio di
lavoro relativo.
Potreste aiutarmi cortesemente?
vi ringrazio anticipatamente ….

——-

Risposta:

negli sheet 2,3,4 ho inserito in posizioni diverse a titolo didattico, una colonna dove puoi inserire gli importi che verranno sommati e mostrati nello sheet ‘Sommario’. Ho parametrizzato infatti il codice per permetterti di collocare la colonna dove prefierisci. La macro viene lanciata automaticamente al verificarsi dell’evento Workbook_Open e può essere eseguita anche premendo il bottone ‘Aggiorna’.

In allegato trovi il file con i commenti inseriti direttamente nel modulo VBA.

Importo Assegnato

Riccardo Vincenti