Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    exel: trova, copia e cancella

    Salve,
    avrei bisogno di un pò di aiuto per arrivare ad una soluzione fattibile.
    Praticamente vi linko il collegamento dove sta il file, così è molto più semplice.

    www.alessiomazzantini.com/prova/prova1.xls

    Sono riuscito a creare la parte di inserimento sui vari fogli (S,M,L,Xl,XXL), di un teorico ordine.
    Adesso vorrei come nel form2 (già presente nel file di esempio) poter ricercare l'articolo sui vari fogli, che mi visualizzasse la descrizione e a quel punto poter copiare i dati cancellandoli dal foglio singolo e copiarlo sul foglio magazzino.

    Sono giorni che mi ci perdo ma essendo un pò acerbo e da poco imbattuto nel vb chiedevo se potevate darmi una mano.

    grazie
    ale tacchino82

  2. #2
    salve,
    ho fatto qualche passo avanti.
    Mi hanno suggerito di inserire questo codice e funziona solo che vorrei poterlo eseguire su tutti i fogli senza specificarne uno alla volta (così se aggiungo fogli di lavoro non devo stare ad indicalo ogni volta.
    codice:
    Private Sub CommandButton2_Click()
    If TextBox8.Value = "" Then
    MsgBox "INSERIRE CHIAVE DI RICERCA"
    TextBox8.SetFocus
    Exit Sub
    End If
    Sheets("S").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("h4:h65000"), TextBox8.Value)
    If trovacodice <> 0 Then
    Range("h3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm2.TextBox8.Text
    ActiveCell.Offset(0, -6).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    articolo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    colore = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    prezzo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    npezzi = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    previsione_arrivo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    codarticolo = ActiveCell.Value
    Y = ActiveCell.Address
    taglia = ActiveSheet.Name
    Range(X & ":" & Y).Select
    Selection.Copy
    UserForm2.TextBox1 = cliente
    UserForm2.TextBox2 = articolo
    UserForm2.TextBox3 = colore
    UserForm2.TextBox4 = prezzo
    UserForm2.TextBox5 = npezzi
    UserForm2.TextBox6 = previsione_arrivo
    UserForm2.TextBox7 = codarticolo
    UserForm2.TextBox10 = taglia
    Sheets("magazzino").Select
    Range("B3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveSheet.Paste
    UserForm3.TextBox9.SetFocus
    UserForm3.Show
    Sheets("S").Select
    Selection.EntireRow.Delete
    Range("A1").Select
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    TextBox7.Value = ""
    TextBox10.Value = ""
    End If
    Sheets("M").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("h4:h65000"), TextBox8.Value)
    If trovacodice <> 0 Then
    Range("h3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm2.TextBox8.Text
    ActiveCell.Offset(0, -6).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    articolo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    colore = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    prezzo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    npezzi = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    previsione_arrivo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    codarticolo = ActiveCell.Value
    Y = ActiveCell.Address
    taglia = ActiveSheet.Name
    Range(X & ":" & Y).Select
    Selection.Copy
    UserForm2.TextBox1 = cliente
    UserForm2.TextBox2 = articolo
    UserForm2.TextBox3 = colore
    UserForm2.TextBox4 = prezzo
    UserForm2.TextBox5 = npezzi
    UserForm2.TextBox6 = previsione_arrivo
    UserForm2.TextBox7 = codarticolo
    UserForm2.TextBox10 = taglia
    Sheets("magazzino").Select
    Range("B3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveSheet.Paste
    UserForm3.TextBox9.SetFocus
    UserForm3.Show
    Sheets("M").Select
    Selection.EntireRow.Delete
    Range("A1").Select
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox10.Value = ""
    End If
    Sheets("L").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("h4:h65000"), TextBox8.Value)
    If trovacodice <> 0 Then
    Range("h3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm2.TextBox8.Text
    ActiveCell.Offset(0, -6).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    articolo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    colore = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    prezzo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    npezzi = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    previsione_arrivo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    codarticolo = ActiveCell.Value
    Y = ActiveCell.Address
    taglia = ActiveSheet.Name
    Range(X & ":" & Y).Select
    Selection.Copy
    UserForm2.TextBox1 = cliente
    UserForm2.TextBox2 = articolo
    UserForm2.TextBox3 = colore
    UserForm2.TextBox4 = prezzo
    UserForm2.TextBox5 = npezzi
    UserForm2.TextBox6 = previsione_arrivo
    UserForm2.TextBox7 = codarticolo
    UserForm2.TextBox10 = taglia
    Sheets("magazzino").Select
    Range("B3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveSheet.Paste
    UserForm3.TextBox9.SetFocus
    UserForm3.Show
    Sheets("L").Select
    Selection.EntireRow.Delete
    Range("A1").Select
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox10.Value = ""
    End If
    Sheets("XL").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("h4:h65000"), TextBox8.Value)
    If trovacodice <> 0 Then
    Range("h3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm2.TextBox8.Text
    ActiveCell.Offset(0, -6).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    articolo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    colore = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    prezzo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    npezzi = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    previsione_arrivo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    codarticolo = ActiveCell.Value
    Y = ActiveCell.Address
    taglia = ActiveSheet.Name
    Range(X & ":" & Y).Select
    Selection.Copy
    UserForm2.TextBox1 = cliente
    UserForm2.TextBox2 = articolo
    UserForm2.TextBox3 = colore
    UserForm2.TextBox4 = prezzo
    UserForm2.TextBox5 = npezzi
    UserForm2.TextBox6 = previsione_arrivo
    UserForm2.TextBox7 = codarticolo
    UserForm2.TextBox10 = taglia
    Sheets("magazzino").Select
    Range("B3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveSheet.Paste
    UserForm3.TextBox9.SetFocus
    UserForm3.Show
    Sheets("XL").Select
    Selection.EntireRow.Delete
    Range("A1").Select
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox10.Value = ""
    End If
    Sheets("XXL").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("h4:h65000"), TextBox8.Value)
    If trovacodice <> 0 Then
    Range("h3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm2.TextBox8.Text
    ActiveCell.Offset(0, -6).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    articolo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    colore = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    prezzo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    npezzi = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    previsione_arrivo = ActiveCell.Value
    ActiveCell.Offset(0, 1).Select
    codarticolo = ActiveCell.Value
    Y = ActiveCell.Address
    taglia = ActiveSheet.Name
    Range(X & ":" & Y).Select
    Selection.Copy
    UserForm2.TextBox1 = cliente
    UserForm2.TextBox2 = articolo
    UserForm2.TextBox3 = colore
    UserForm2.TextBox4 = prezzo
    UserForm2.TextBox5 = npezzi
    UserForm2.TextBox6 = previsione_arrivo
    UserForm2.TextBox7 = codarticolo
    UserForm2.TextBox10 = taglia
    Sheets("magazzino").Select
    Range("B3").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveSheet.Paste
    UserForm3.TextBox9.SetFocus
    UserForm3.Show
    Sheets("XXL").Select
    Selection.EntireRow.Delete
    Range("A1").Select
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox10.Value = ""
    End If
    UserForm2.Hide
    Sheets("MAGAZZINO").Select
    End Sub
    grazie
    ale tacchino82

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    VBA viene trattato con i suoi fratelli maggiori: Visual Basic e .NET Framework.

    Sposto e correggo la chiusura del tag CODE.

    PS: ha ben poco senso aggiungere i tag CODE se il codice non è indentato...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.