Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

DUPLICARE UNA CELLA PER IL NUMERO DI CELLE CONTENUTE NELLA STESSA RIGA

Ultimo Aggiornamento: 25/05/2018 15:59
Post: 1
Registrato il: 14/05/2018
Città: GENOVA
Età: 39
Utente Junior
excel 2010
OFFLINE
14/05/2018 12:16

Buongiorno a tutti,
ho un problema e spero che qualcuno di voi possa aiutarmi.
Non sono esperta di VBA ma mi piacerebbe riuscire con una macro a far sì che una cella venga ripetuta in base alle celle indicate nella sua riga di riferimento e inserisca il valore contenuto in essa prendendo la sua data di riferimento..

Ovviamente è poco chiaro..ma vi allego un esempio...

Ho cercato sul forum ma purtroppo non ho trovato nulla che possa essermi d'aiuto.

Ringrazio coloro che vorranno risolvere il mio problema.
Post: 3.448
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
14/05/2018 13:34

Ho capito il risultato, mà quale foglio devo usare? Il Foglio1 con le "date" e sotto il risultato?
Oppure vorrai farlo per il foglio2 che mancano le date? Se fosse il foglio2 avrai il risultato sul foglio3
Excel 2013
Post: 3.746
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
14/05/2018 14:14

Ciao Roxxy ed un saluto a Raffaele.

Io mi sono limitato al Foglio1 presupponendo che per ogni cod. art vi sia almeno un valore.

Nell'intervallo F14:I14 inserisci questa intestazione

CODICE	IMPORTO	DATA	PREZZO


formatta come date la colonna delle date e prova ad eseguire questa macro.

vb
Sub Roxxy()
Dim i As Integer
Dim rng As Range
Dim cel As Range
Dim cel1 As Range
Dim ur As Long
Set rng = Range("A3:a7")
For Each cel In rng
    For i = 1 To Application.WorksheetFunction.Count(Range(Cells(cel.Row, "B"), Cells(cel.Row, "I")))
    ur = Cells(Rows.Count, "F").End(xlUp).Row
        Cells(ur + 1, "f").Value = cel.Value
        For Each cel1 In Range(Cells(cel.Row, "B"), Cells(cel.Row, "I"))
            If cel1.Value <> "" Then
                Cells(ur + 1, "g").Value = cel1.Value
                Cells(ur + 1, "h").Value = Cells(2, cel1.Column).Value
            End If
        Next cel1
        Cells(ur + 1, "I").Value = CDbl(cel.Offset(0, 9).Value)
    Next i
Next cel
End Sub

Alfredo
Post: 1
Registrato il: 14/05/2018
Città: GENOVA
Età: 39
Utente Junior
excel 2010
OFFLINE
14/05/2018 14:46

Grazie per aver risposto così velocemente!

Il foglio da considerare è solo il "FOGLIO 1" in cui in alto c'è la tabella base che è quella da cui serve pescare i dati e sotto ciò che mi serve come risultato.

ho provato la tua macro ma mi esce il risultato del file in allegato... puoi vedere per cortesia se riesci a fare uscire il risultato che mi occorre?

grazie davvero infinitamente
Post: 3.450
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
14/05/2018 14:53

Un saluto ad alfrimpa (manca una riga...)
Ormai fatto e lo sposto, il tutto Va in colonna M
vb
Sub Tabella()
Dim ur As Long, X As Long, Y As Long, Tot As Long, Rg As Long, T As Long
ur = Range("M" & Rows.Count).End(xlUp).Row
If ur > 1 Then Range("M2:P" & ur).ClearContents
ur = Range("A" & Rows.Count).End(xlUp).Row
Rg = 2
For X = 3 To ur
Tot = Application.WorksheetFunction.CountA(Range(Cells(X, 2), Cells(X, 9)))
    If Tot = 0 Then
        Cells(Rg, 13) = Cells(X, 1)
        Cells(Rg, 16) = Cells(X, 10)
        Rg = Rg + 1
    Else
        For Y = 2 To 9
            If Cells(X, Y) <> "" Then
                Cells(Rg, 13) = Cells(X, 1)
                Cells(Rg, 14) = Cells(X, Y)
                Cells(Rg, 15) = Cells(2, Y)
                Cells(Rg, 16) = Cells(X, 10)
                Rg = Rg + 1
            End If
        Next Y
    End If
Next X
End Sub

[Modificato da raffaele1953 14/05/2018 15:35]
Excel 2013
Post: 3.747
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
14/05/2018 14:56

Ciao Roxxy

Il range del prezzo (col. I) deve essere formattata a numero con quattro decimali.

Prima ti avevo anche detto che per ogni codice vi deve essere nella tabella su almeno un valore.

Per il codice 131215645 (che non ha nessun valore) prova ad inserirne uno e (dopo aver cancellato l'intervallo) rilancia la macro.

Ora come ora non saprei come gestire l'assenza di un valore per un codice.

Riprova e fai sapere.

Alfredo
Post: 2
Registrato il: 14/05/2018
Città: GENOVA
Età: 39
Utente Junior
excel 2010
OFFLINE
14/05/2018 15:03

RISOLTO! GRAZIE 1000
Grazie mille!
Funziona benissimo!

Sei stato davvero gentilissimo e mi hai risparmiato un sacco di lavoro!
Post: 3.748
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
14/05/2018 15:11

Re: RISOLTO! GRAZIE 1000
Roxxy.6, 14/05/2018 15.03:

Grazie mille!
Funziona benissimo!

Sei stato davvero gentilissimo e mi hai risparmiato un sacco di lavoro!



Solo per curiosità ma ti riferisci a me o a Raffaele?


Alfredo
Post: 3
Registrato il: 14/05/2018
Città: GENOVA
Età: 39
Utente Junior
excel 2010
OFFLINE
25/05/2018 15:59

grazie
Ciao,
è stato risolto da Raffaele, ma grazie anche a te per avermi aiutata.

Vota: 15MediaObject5,0039 3
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:47. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com