Risolto Unire testo di più celle per data con un click

pucc973

Nuovo utente
16 Aprile 2019
9
1
Excel 2010
0
Ciao a tutti, ho un problema da sottoporvi su un file excel che uso per semplificare e automatizzare una parte del mio lavoro, allegherò un file di esempio senza dati sensibili ovviamente.
Allora... su questo file excel sono riuscito a creare un database con l'aiuto di una Userform. Il database è composto da voci incolonnate: nella prima colonna del foglio3 ci sono le date, nelle colonne successive ci sono degli oggetti, alcuni di loro sono accomunati dalla stessa data in riga. Avri bisogno di una macro che, al click di un pulsante (che nel foglio ho nominato 'Raggruppa'), mi unisse il contenuto delle celle corrispondenti alla stessa data (che deve essere la data dell'ultimo record salvato in ordine di tempo) in una cella sul Foglio1. Nel file originale la cella di destinazione è la cella attraverso il click della quale apro la userform che ho fatto per popolare il database; nel file di esempio può essere per esempio la cella A1 del foglio1. Ho cercato sul forum discussioni simili, no ho trovata una che credevo facesse al caso mio, ma non sono riuscito a farla funzionare nel mio file. In pratica questo file mi serve a fare in modo di riempire una cella di stringhe in momenti diversi della giornata, senza perdere ciò che ho scritto in precedenza, per poi salvarle su un file di testo (nominandolo con la data di creazione) nella stessa directory del file excel. Spero di essere stato chiaro e vi ringarzio in anticipo per l'aiuto!
 

Allegati

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
17.645
113
65
Napoli
2013
300
pucc973 @pucc973

A dire il vero sono un po' perplesso perchè non so se ho capito bene la richiesta.

Sulla base del file allegato prova questa macro

Visual Basic:
Sub UnisciCelle()
Dim ur As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("a1:a" & ur)
For Each cel In rng
    If cel.Value = Cells(Rows.Count, 1).End(xlUp).Value Then
        cel.Select
        Exit For
    End If
Next cel
Application.DisplayAlerts = False
Range(Cells(ActiveCell.Row, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Merge
Application.DisplayAlerts = True
End Sub
 

pucc973

Nuovo utente
16 Aprile 2019
9
1
Excel 2010
0
Ciao Alfredo e grazie per la risposta, in effetti mi sono spiegato male... le celle che devo unire in un unica cella sono quelle degli oggetti che hanno la stessa data, in prartica ...
da:

15/4/2019 pippo
15/4/2019 teglia
14/4/2019 mela

la cella di destinazione deve contenere le stringhe "pippo / Teglia" che sono accomunate dalla stessa data e possibilmente separate da uno slash (/). Quindi la cella di destinazione è un 'unione' (tipo 'concatena' per intenderci..) fra le celle nelle righe della stessa data (ultima in ordine di tempo):
quindi per il 15/4

nella cella A1(foglio1): pippo / teglia

Perdonami per averti fatto perdere tempo....
 

locate

Utente abituale
24 Ottobre 2016
431
28
locate varesino
2007/13
31
ciao

da mettere nel modulo del foglio3

Visual Basic:
Option Explicit
Sub Raggruppa()
Dim i As Long
Dim D_ata As Long
Dim Stringa As String
D_ata = Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A")
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
  If Cells(i, "A").Value = D_ata Then
   Stringa = Stringa & Cells(i, "D") & "/"
  End If
Next
Sheets("Foglio1").Range("A1") = Mid(Stringa, 1, Len(Stringa) - 1)
End Sub
ciao
 

pucc973

Nuovo utente
16 Aprile 2019
9
1
Excel 2010
0
Ciao locate, cerco di adattarlo al file che mi serve, funziona bene nel file di esempio ma dove mi serve non va.
Credo che il problema è legato al fatto che il codice deve funzionare al click del commandbutton inserito nella userform.

Il modo migliore è allegarti il file originale 'ripulito' da dati sensibili.... devo preparatelo.
nel frattempo mi spiegheresti le righe dalla 6 alla 9 del tuo codice?
al più presto ti allego il file.
Grazie!
 

pucc973

Nuovo utente
16 Aprile 2019
9
1
Excel 2010
0
Buongiorno a tutti,
sono riuscito a far girare il codice sul mio foglio semplicemente aggiungendo i riferimenti giusti ai fogli e alle celle giuste.
Resta da capire come fare a salvare un foglio di testo, nella directory del foglio excel, con il contenuto di 'Stringa' alla fine del lavoro e nominandolo con la data corrispondente. Non so se devo aprire un nuovo topic o continuare la discussione.
Volevo ringraziarvi tutti per l'aiuto e il tempo che mi avete dedicato.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!