| | 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 | |
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 | |
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 | |
Ciao,
è stato risolto da Raffaele, ma grazie anche a te per avermi aiutata.
|
|
|