|
Rank: Member
Iscritto dal : 11/20/2012 Posts: 14
|
Salve.
Ho inviato la mail con l'allegato.
Grazie. Mic
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve ho visto il file. Vedo una situazione che non riesco a collegare con il senso della domanda che hai postato nel primo post. Spiga esattamente cosa vuoi ottenere con un esempio reale considerando che ora posso seguirti avendo il file sotto mano. saluti Giap
|
|
Rank: Member
Iscritto dal : 11/20/2012 Posts: 14
|
Ok.
Allora, supponiamo di partire da foglio 2. Inserisco una data in A2, es. 13/01/2008 e supponiamo che a tale data siano associate due operazioni (non come da esempio che ti ho inviato in cui tutte le date sono uniche...). Registrando tale data, vorrei che, attingendo dalle date di foglio 2, la macro mi chiedesse a quale "operazione/riga" mi riferisco, visto che le date sono 2 (o più). Una volta riconosciuta la data/riga che voglio, vorrei che mi riempisse in automatico i campi UdM, Quantità e Descrizione con i dati che trova cioè nella riga di foglio1, tutti i campi cioè che posono essere comuni ai due fogli.
Ho fatto un po' di prove ma non ci sono ancora riuscito... Ti ringrazio ancora. Mic
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve scusa per il ritardo ma l'influenza non mi ha risparmiato. ti allego una macro da provare. Premetto che non ho capito quali e come devono essere copiati i dati della riga selezionata. Quindi la riga di istruzioni relative all'struzione copy andrà modificata. Copia in un modulo standard la seguente macro: Sub trovariga() n = 0 Rsel = ActiveCell.Row Dim riga() As Long With Sheets("Foglio1") Set rng = Range(.Range("a1"), .Range("a1").End(xlDown)) End With miadata = Sheets("foglio2").Range("a2").Value For Each Mdate In rng If miadata = Mdate Then riga(n) = Mdate.Row n = n + 1 End If ReDim Preserve riga(n) Next Mdate For i = LBound(riga) To UBound(riga) - 1 x = x & " : " & riga(i) Next i Criga = InputBox("Righe trovate: " & x, "Quale riga copiare?") With Sheets("Foglio1") Range(.Cells(Criga, 2), .Cells(Criga, 5)).Copy Destination:=Sheets("Foglio2").Cells(Rsel, 8) End With Set rng = Nothing End Sub con il cursore posizionato nella cella del foglio2 che contiene la data da cercare , esegui la macro. Ti verrà proposta una finestra con il numero delle righe trovate, digita il numero di riga che ti interessa e verrà effettuata la copia delle righe sul foglio2 saluti Giap
|
|
Rank: Member
Iscritto dal : 11/20/2012 Posts: 14
|
Salve, Grazie per la risposta.
Ho copiato e incollato la tua macro in questo modo: sono andato su "foglio2", ho cliccato col dx in basso su "visualizza codice. La macro l'ho incollata sull'area del percorso: VBA project/Microsoft Excel oggetti/Foglio2 Eseguendo la query da foglio 2 mi dà un errore: x 400 La "x" è un'icona rossa e "400" è il codice del'errore. Da cosa può dipendere?
Grazie ancora. Mic
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
denver84 ha scritto:Salve,
Ho copiato e incollato la tua macro in questo modo: sono andato su "foglio2", ho cliccato col dx in basso su "visualizza codice. La macro l'ho incollata sull'area del percorso: VBA project/Microsoft Excel oggetti/Foglio2 Eseguendo la query da foglio 2 mi dà un errore: x 400 La "x" è un'icona rossa e "400" è il codice del'errore. Da cosa può dipendere?
Mic Salve come detto nel mio post precedente, la macro va incollata in un modulo standard e non nel modulo del foglio. dal foglio Excel> Alt+F11 per entrare nell'editor di Vba Menù Inserisci> Modulo nella pagina bianca che ti si apre copia la macro saluti Giap
|
|
Rank: Member
Iscritto dal : 11/20/2012 Posts: 14
|
Ciao. Ok, grazie. Adesso funziona.
L'unica cosa che ti chiedo, gentilmente, è se al momento in cui mi chiede quale riga voglio aggiungere, possa avere come pagina (di sfondo), quella in cui devo scegliere la riga per non dovermi ricordare ogni volta il numero ed avere tutto sott'occhio. Il top sarebbe se il messaggio mi dicesse anche il numero delle righe in cui sono presenti la data, o le date, che cerco.
Grazie mille.
Mic
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve prova con queste modifiche Sub trovariga() n = 0 Rsel = ActiveCell.Row Dim riga() As Long With Sheets("Foglio1") Set rng = Range(.Range("a1"), .Range("a1").End(xlDown)) End With miadata = ActiveCell.Value For Each Mdate In rng If miadata = Mdate Then riga(n) = Mdate.Row n = n + 1 End If ReDim Preserve riga(n) Next Mdate For i = LBound(riga) To UBound(riga) - 1 x = x & " : " & riga(i) Next i Sheets("foglio1").Select Criga = Application.InputBox("Righe trovate: " & x & "- Quale riga copiare?" & _ vbCrLf & "Nr. Righe totali trovate: " & UBound(riga), Type:=1) With Sheets("Foglio1") Range(.Cells(Criga, 2), .Cells(Criga, 5)).Copy Destination:=Sheets("Foglio2").Cells(Rsel, 8) End With Set rng = Nothing Sheets("Foglio2").Select End Sub saluti Giap
|
|
Guest |