Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Selezionare Riga con Macro da una data Opzioni
denver84
Inviato: Thursday, December 06, 2012 10:45:24 AM
Rank: Member

Iscritto dal : 11/20/2012
Posts: 14
Salve.

Ho inviato la mail con l'allegato.

Grazie.
Mic
a10n11
Inviato: Thursday, December 06, 2012 1:03:44 PM

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


denver84
Inviato: Monday, December 10, 2012 5:33:38 PM
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

a10n11
Inviato: Thursday, December 13, 2012 11:56:57 AM

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


denver84
Inviato: Monday, December 17, 2012 5:52:40 PM
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
a10n11
Inviato: Monday, December 17, 2012 7:16:36 PM

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



denver84
Inviato: Wednesday, December 19, 2012 10:13:12 AM
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
a10n11
Inviato: Wednesday, December 19, 2012 7:02:22 PM

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

Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.