creare macro x copiare dati da un foglio ad un altro !

Anonimo
2011-02-09T14:20:02+00:00

Ciao a tutti ! Avrei bisogno di una mano x risolvere un problema :

su excel ho un foglio (database) dove vi sono diversi dati (10 colonne su 60000 righe) ora su un foglio di excel devo recuperare i dati appartenenti ad un'unica riga immettendo soltanto un unico riferimento

example :

database  :

codice ; ean ; descrizione articolo ; prezzo ; costo

foglio1 :

immettendo o il codice o l'ean dovrei recuperare il resto dei dati !

Al momento ho un file dove posso inserire un solo dato e cioè l'ean x recupare i miei dati !

ne vorrei uno che posso inserire o lean o il codice articolo.

Grazie a tutti

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
2011-02-10T07:48:03+00:00

Ciao Mauro grazie x la risposta !!

Mi da un errore:  "Errore di compilazione ! utilizzo non valido della parola chiave Me "

qui : "Set rng = .Range("A2:F" & lRiga).SpecialCells(xlCellTypeVisible)

                    If Not rng Is Nothing Then

                        rng.Copy Destination:=Me.Range("A" & Target.Row)"

Sempre se ho fatto bene e cioè :

ho copiato i tuoi comandi in : "crea nuova macro " e dopo di che ho fatto esegui macro !! Corretto ??

ciao

Io ho scritto:

Foglio2 la tua tabella che inizia da A1. Copia/incolla questo nel modulo di codice del Foglio1

non quello che hai fatto tu. Sempre che, come tu hai scritto, Foglio2 contenga la tabella e Foglio1 sia il foglio dove tu voglia i dati in automatico scrivendo in colonna A o B. Vedi anche qui:http://www.maurogsc.eu/excel/xlsdoveinserirecodice.aspx


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-02-09T18:28:52+00:00

Ciao Mauro : si i due fogli sono nello stesso file qui di seguito riporto un esempio: "foglio 1"

<cut>

  Gianluca

Foglio2 la tua tabella che inizia da A1. Copia/incolla questo nel modulo di codice del Foglio1:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim sh As Worksheet

    Dim rng As Range

    Dim lRiga As Long

    Set sh = ThisWorkbook.Worksheets("Foglio2")

    If Target.Cells.Count = 1 Then

        Select Case Target.Column

            Case 1, 2

                With sh

                    lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

                    .Range("A1").AutoFilter Field:=Target.Column, Criteria1:=Target.Value

                    On Error Resume Next

                    Set rng = .Range("A2:F" & lRiga).SpecialCells(xlCellTypeVisible)

                    If Not rng Is Nothing Then

                        rng.Copy Destination:=Me.Range("A" & Target.Row)

                    End If

                    .Range("A1").AutoFilter

                End With

        End Select

    End If

    Set rng = Nothing

    Set sh = Nothing

End Sub

Prova ad inserire dati in colonna A e B del Foglio1. Non l'ho testata a fondo. Riporta eventuali errori, grazie.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-02-09T16:31:32+00:00

    Ciao a tutti ! Avrei bisogno di una mano x risolvere un problema :

    su excel ho un foglio (database) dove vi sono diversi dati (10 colonne su 60000 righe) ora su un foglio di excel devo recuperare i dati appartenenti ad un'unica riga immettendo soltanto un unico riferimento

    example :

    database  :

    codice ; ean ; descrizione articolo ; prezzo ; costo

    foglio1 :

    immettendo o il codice o l'ean dovrei recuperare il resto dei dati !

    Al momento ho un file dove posso inserire un solo dato e cioè l'ean x recupare i miei dati !

    ne vorrei uno che posso inserire o lean o il codice articolo.

    Grazie a tutti

    I due fogli sono nello stesso file? Quando vuoi richiamare la macro? Vuoi scrivere l'ean in una cella(quale) e richiamare la macro? Vuoi la stessa cosa per il codice? In quale cella lo vai ad inserire? Vanno bene due tasti di scelta rapida o vuoi una UserForm da richiamare? I dati(codice e ean), sono univoci o devi recuperare più dati con gli stessi ean/codice dalla tabella? Grazie.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-02-09T16:26:16+00:00

    Ciao,

    Credo che la funzione Cerca.Vert possa fare al caso tuo.

    Ipotizziamo che tu voglia recuperare tutto sul foglio f1 in base al codice che scriverai nella cella A2 e, sempre per ipotesi diciamo che la tua base dati si estende da A1 ad E50 sul foglio f2 con la struttura che ci hai mostrato:

    codice ; ean ; descrizione articolo ; prezzo ; costo

    Sul foglio f1 nella cella A2 scriverai il tuo valore di codice da ricercare mentre a partire dalla cella B2 (ipotizzo che in riga 1 tu metta i nomi delle colonne) scriverai:

    B2 -->   =cerca.vert(A2,Foglio2!A1:E50;2;Falso)   --> ean

    C2 -->   =cerca.vert(A2,Foglio2!A1:E50;3;Falso)   --> descrizione articolo

    D2 -->   =cerca.vert(A2,Foglio2!A1:E50;4;Falso)   --> prezzo

    E2 -->   =cerca.vert(A2,Foglio2!A1:E50;5;Falso)   --> costo

    David

    Ciao David grazie x la risposta ma la necessità di ricercare i valori di descrizione art., prezzo e costo o con il codice art. o con l'ean simultaneamente e non ho la possibilità di mettere in ordine crescente le due colonne di ricerca e cioè cod. art e l' ean !!!

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-02-09T14:56:34+00:00

    Ciao,

    Credo che la funzione Cerca.Vert possa fare al caso tuo.

    Ipotizziamo che tu voglia recuperare tutto sul foglio f1 in base al codice che scriverai nella cella A2 e, sempre per ipotesi diciamo che la tua base dati si estende da A1 ad E50 sul foglio f2 con la struttura che ci hai mostrato:

    codice ; ean ; descrizione articolo ; prezzo ; costo

    Sul foglio f1 nella cella A2 scriverai il tuo valore di codice da ricercare mentre a partire dalla cella B2 (ipotizzo che in riga 1 tu metta i nomi delle colonne) scriverai:

    B2 -->   =cerca.vert(A2,Foglio2!A1:E50;2;Falso)   --> ean

    C2 -->   =cerca.vert(A2,Foglio2!A1:E50;3;Falso)   --> descrizione articolo

    D2 -->   =cerca.vert(A2,Foglio2!A1:E50;4;Falso)   --> prezzo

    E2 -->   =cerca.vert(A2,Foglio2!A1:E50;5;Falso)   --> costo

    David

    La risposta è stata utile?

    0 commenti Nessun commento