Realizzazione Macro per recupero dati

Anonimo
2020-04-28T09:11:09+00:00

Ciao David

Ho una domanda porvi

Mi serve un comando macro per fare in modo che delle informazioni contenute in un riga qualsiasi di un foglio definito di "inserimento dati"  venga copiata come singola riga e poi trasferita in un foglio a parte di elaborazione dati e ogni volta tale riga venga incollata nella prima riga libera che trova nel foglio di destinazione, la mia difficoltà nel riuscire a fare tale comando sta nel fatto che la riga da copiare dal foglio di inserimento dati può essere ogni volta diversa e compresa tra la riga 2 e la riga 200 la riga da copiare deve essere subordinata al clik effettuato su un collegamento ipertestuale contenuto nella colonna B il quale è presente in tutte le righe dalla 2 all 200 e cliccando sul quale si va ad elaborare un documento in PDF.

Spero di essere stato abbastanza chiaro

se hai problemi fammi sapere

ciao Cristian

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2020-04-30T18:24:59+00:00

Ciao Cristian,

Const sColonne_da_Copiare As String = "A:AV"                 '<<=== Modifica

    Const sFoglio_Destinazione As String = "Foglio3"           '<<=== Modifica 

Il foglio 3 lo richiamerò io come mi servirà in seguito

Ho scaricato il tuo file e credo che il problema principale sia che sul foglio Inserimento dati siano presenti righe nascoste.

Per superare il problema, nel modulo di codice del foglio Inserimento datiincolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    Dim destSH As Worksheet

    Dim srcRng As Range, destRng As Range

    Dim LRow As Long

    Const sColonne_da_Copiare As String = "A:AV"                 '<<=== Modifica

    Const sFoglio_Destinazione As String = "Foglio3"              '<<=== Modifica

    Set srcRng = Intersect(ActiveCell.EntireRow, _

                           Me.Columns(sColonne_da_Copiare))

    Set destSH = ThisWorkbook.Sheets(sFoglio_Destinazione)

    With destSH

        Debug.Print Target.Range.Cells.Count

        LRow = LastRow(destSH, .Columns(sColonne_da_Copiare))

        Set destRng = .Range("A" & LRow + 1)

    End With

    srcRng.Copy Destination:=destRng

End Sub

'<<=========

In un modulo standard, incolla:

'=========>>

Option Explicit

'--------->>

Public Function LastRow(SH As Worksheet, _

                        Optional Rng As Range, _

                        Optional minRow As Long = 1)

    If Rng Is Nothing Then

        Set Rng = SH.Cells

    End If

    On Error Resume Next

    LastRow = Rng.Find(What:="*", _

                       after:=Rng.Cells(1), _

                       Lookat:=xlPart, _

                       LookIn:=xlFormulas, _

                       SearchOrder:=xlByRows, _

                       SearchDirection:=xlPrevious, _

                       MatchCase:=False).Row

    On Error GoTo 0

    If LastRow < minRow Then

        LastRow = minRow

    End If

End Function

'<<=========

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

16 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-05-06T10:30:37+00:00

    Ciao Cristian,

    con l'ultima modifica il file funzionava perfettamente.

    Bene, mi fa piacere!

    Posso chiederti ancora una cosa?

    esiste un modo semplice per modificare il valore numerico riferito alla riga contenuto in un range di celle in modo che esso possa variare in funzione della pagina a cui esso è collegato.

    Spiego meglio 

    Pagina 1 riga 5 collegata con pagina 2 tutte le formule di pagina 2 hanno come riferimento numerico o come inserimento dati  il numero 5

    Pagina 1 riga 6 collegata con pagina 3  tutte le formule di pagina 3 hanno come riferimento numerico o come inserimento dati  il numero 6

    ………….

    essendo che le tabelle sono molte e a volte le modifiche devono essere fatte su tutte per aggiornarle o modificarle ma il riferimento numerico resta quello le modifiche riesco a farle senza problemi ma poi devo necessariamente modificare i valori numerici a mano per ogni fogli perché non saprei come fare a far modificare i valore di riferimento che collega la riga alla pagina.

    Tu ai idee per come risolvere tale problema 

    Ti chiederei gentilmente di aprire un nuovo thread per questa nuova domanda distinta.

    Comunque, non ho capito la tua domanda e credo che il caricamento di un file di esempio sarebbe molto utile.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-05-06T08:39:26+00:00

    Grazie Norman

    con l'ultima modifica il file funzionava perfettamente.

    Posso chiederti ancora una cosa?

    esiste un modo semplice per modificare il valore numerico riferito alla riga contenuto in un range di celle in modo che esso possa variare in funzione della pagina a cui esso è collegato.

    Spiego meglio

    Pagina 1 riga 5 collegata con pagina 2 tutte le formule di pagina 2 hanno come riferimento numerico o come inserimento dati  il numero 5

    Pagina 1 riga 6 collegata con pagina 3  tutte le formule di pagina 3 hanno come riferimento numerico o come inserimento dati  il numero 6

    ………….

    essendo che le tabelle sono molte e a volte le modifiche devono essere fatte su tutte per aggiornarle o modificarle ma il riferimento numerico resta quello le modifiche riesco a farle senza problemi ma poi devo necessariamente modificare i valori numerici a mano per ogni fogli perché non saprei come fare a far modificare i valore di riferimento che collega la riga alla pagina.

    Tu ai idee per come risolvere tale problema

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-04-30T16:00:07+00:00

    Const sColonne_da_Copiare As String = "A:AV"                 '<<=== Modifica

        Const sFoglio_Destinazione As String = "Foglio3"           '<<=== Modifica 

    Il foglio 3 lo richiamerò io come mi servirà in seguito

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-04-30T15:50:19+00:00

    Ciao Cristian.  

    Solo per conferma il file ti è arrivato ?

    Ho ricevuto il tuo file ma non vedo il tuo adattamento del mio codice. Inoltre, non so quale sia il foglio di destinazione.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento