| | Post: 1 | Registrato il: 13/09/2019
| Età: 37 | Utente Junior | 365 | | OFFLINE | |
|
16/09/2019 09:35 | |
Buongiorno a tutti,
sono nuovo del forum.
Vado subito al dunque. (allego file excel)
Sto cercando il modo di copiare, dalla prima sheet "Laves" la riga X delle colonne A e B quando la data riportata nella stessa riga in colonna E (data fine) corrisponde all'intervallo mensile 01-31-xx-2019.
Se la data è compresa nel mese 01, deve copiare nella seconda sheet "previsioni fatturato" nelle celle A e B "GENNAIO", se la data è compresa nel mese 02 deve copiarla nella C e D "FEBBRAIO", e cosi via per tutte le righe della tabella.
In base alla Data in colona E deve copiarli nella seconda sheet nel mese riguardante.
Grazie
in anticipo per l'aiuto. |
|
| | Post: 1.285 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
16/09/2019 11:35 | |
ciao a tutti
sempre che abbia capito,
in cella A1 del foglio "Previsoni Fattuato" del file che hai allegato,
puoi provare con
vb =SE(MESE(Laves!E7= 9);Laves!A7)
poi la trascini a destra ed in basso.
Prima controlla il numero del mese nel foglio "Laves",
per adeguare la formula
ciao
Frank [Modificato da tanimon 16/09/2019 11:36]
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 1 | Registrato il: 13/09/2019
| Età: 37 | Utente Junior | 365 | | OFFLINE | |
|
16/09/2019 12:58 | |
Avevo già valutato questa formula ma diciamo che così non è "intelligente" perché io manualmente devo andare a mettere nella colonna "GENNAIO"la formula che punti SOLO le celle nella sheet "Laves" - "DATA FINE" che abbiano la data corrispondente al mese selezionato.
Esempio:
A1(shette previsioni), devo mettere =
=SE(MESE(Laves!E7= 9);Laves!AX)
dove X indica il numero della riga che ha come data gennaio.
Devo quindi scorreremi ogni singola riga e farlo a mano.
A me servirebbe un codice VB che faccia il controllo e che le copiasse in automatico nella colonna del mese corretto. |
| | Post: 3.476 | Registrato il: 03/04/2013
| Utente Master | Excel 2000 - 2013 | | OFFLINE | |
|
16/09/2019 18:51 | |
Buona sera, Nicola; consentimi un caro saluto a @tanimon, buona serata Frank! Fatto ciò, prima di cimentarmi con un Codice VBA, ti chiedo se hai valutato l'opportunità dell'utilizzo della funzione "Indiretto"; credo potrebbe funzionare. Considera solo che se serve un aiuto da parte mia dovrai pazientare fino a Giovedì/Venerdì. A disposizione. Buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 2 | Registrato il: 13/09/2019
| Età: 37 | Utente Junior | 365 | | OFFLINE | |
|
18/09/2019 11:08 | |
Non l'ho mai usata, ora ci provo. Vi aggiorno.
Grazie |
| | Post: 3 | Registrato il: 13/09/2019
| Età: 37 | Utente Junior | 365 | | OFFLINE | |
|
18/09/2019 12:42 | |
Con il SE MESE in parte funziona, ma dove trova delle celle senza data le copia comunque e quindi non va bene. Con INDIRETTO non ho capito come potrei usarlo per il mio scopo.
Grazie |
| | Post: 702 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
19/09/2019 02:33 | |
Ciao a tutti,
se ho capito bene... in cella A2 del foglio "Previsioni Fattuato" (da copiare poi a destra ed in basso fin dove serve):
=SE.ERRORE(INDICE(Tabella1[[DESCRIZIONE ORDINE]:[N° ORDINE]];AGGREGA(15;6;(RIF.RIGA(Tabella1[DATA FINE])-6)/((MESE(Tabella1[DATA FINE])=(INT((RIF.COLONNA()-1)/2)+1))*(Tabella1[DATA FINE]<>""));RIF.RIGA(A1));VAL.PARI(RIF.COLONNA())+1);"")
riallego file...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 3.483 | Registrato il: 03/04/2013
| Utente Master | Excel 2000 - 2013 | | OFFLINE | |
|
19/09/2019 04:23 | |
Buona giornata a Tutti;
dopo aver studiato l'ottima soluzione di @cromagno, che saluto, ( soluzione che ho salvato nella mia Directory "Procedure da non cancellare mai") ho provato a costruire un Codice VBA senza utilizzare Formule.
Questo è un possibile Codice VBA che, solo come esempio, gestisce i mesi di Gennaio, Settembre e Dicembre; ovviamente su questa falsa riga è possibile gestire tutti i dodici mesi.
Option Explicit
Sub Copia()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long, NRX As Long
Dim y As Byte
Sheets("Laves").Select
With Worksheets("Previsioni Fatturato")
NRc = .Cells.SpecialCells(xlCellTypeLastCell).Row
If NRc < 2 Then NRc = 2
Range(.Cells(2, 1), .Cells(NRc, 24)).ClearContents
NRc = Cells(Rows.Count, 5).End(xlUp).End(xlUp).Row
For x = 7 To NRc
If Cells(x, 5) <> "" Then
Select Case Month(Cells(x, 5))
Case 1
NRX = .Range("A" & .Rows.Count).End(xlUp).Row + 1
y = 1
Case 9
NRX = .Range("Q" & .Rows.Count).End(xlUp).Row + 1
y = 17
Case 12
NRX = .Range("W" & .Rows.Count).End(xlUp).Row + 1
y = 23
End Select
.Cells(NRX, y) = Cells(x, 1).Value
.Cells(NRX, y + 1) = Cells(x, 2).Value
End If
Next x
End With
Application.ScreenUpdating = True
End Sub
Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 4 | Registrato il: 13/09/2019
| Età: 37 | Utente Junior | 365 | | OFFLINE | |
|
19/09/2019 16:47 | |
Grazie mille a entrambi. Funziona. |
|
|