Excel vba sostituire elenco dati in una colonna di un foglio di lavoro

Anonimo
2018-06-12T09:26:42+00:00

Buon Giorno

sto' ultimando un esercizio per migliorare le mie competenze visual basic  ma ho incontrato uno scoglio che non riesco a superare

cerco di spiegare le mie necessita'

Nel Foglio  "Output"  nella riga 1 delle colonne da  A fino a W  (50 colonne )  sono riportati i nominativi delle squadre (molte di fantasia .... )

nelle righe successive sono riportati i nomi dei calciatori che sono assegnati alle squadre

Esempio   A1   Inter       D1 Milan       G1  Lazio

                 A2   Pippo     D2 Pluto        G2  Minny

                 A3   Qui         D3  Quo        G3   Qua

Nel  Foglio  “Simulatore”

Nella colonna  A2:A50      ho l'elenco dei nomi dei Calciatori

Nella colonna B2:B50       sono riportate   le squadre  di appartenenza

Esempio  A2  Pippo      B2   Inter

                 A3  Qui         B3   Inter

                 A4  Pluto      B4   Milan

                A5  Quo        B5   Milan

                A6  Minny     B6   Lazio

                A7  Qua        B7   Lazio  

Eccetera   fino a  A50     ,   B50

Vorrei  fare in modo  che se devo   sostituire  le squadre  di appartenenza  , Esempio se devo sostituire Inter   con  Lazio,  tutte le celle che contenevano  Inter (da B2 a B50 ) , prendano  il nuovo dato Lazio , mentre le altre mantengano il dato esistente

Questa operazione attualmente la faccio tramite due ListBox  (lbxSquadre ,ListBox1) , tre  TextBox (tbColonna , tbRiga,tbNuovaSquadra)  e  due  commandButton  (cbModifica,cbInserisce_Squadra)

La sequenza e’ questa

seleziono in listBox1  la squadra da modificare ,questo permette alle textBox di caricare il nr. Di riga e di colonna

seleziono in lbxSquadre la nuova squadra ,il Click fa caricare alla tbNuovaSquadra  il nuovo valore

Click  pulsante cbModifica

Questo ciclo modifica il nome della squadra  solo  nel Foglio  Output … io devo fare la sostituzione anche nel Foglio  Simulatore  e con le mie attuali competenze ….. non ci riesco

               Grazie  per  qualsiasi suggerimento                   Claudio P

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
2018-06-12T23:25:53+00:00

Ciao Claudio,

Se ho capito l'obiettivo, effettivamente il tuo codice  deve fare il trasferimento di una intera squadra, anzichè di un singolo giocatore. Tuttavia, non ho capito lo scopo del controllo cbInserisce_Squadra.

Ti chiederei gentilmente di caricare il tuo file per permetterci di modificare il codice esistente.

A questo proposito, sarebbe anche utile se, utilizzando quel file, tu fornissi un esempio specifico e dettagliato delle modifiche che devono essere eseguite sui due fogli sia con il controllo cbModifica che il pulsante cbInserisce_Squadra.

===

Regards,

Norman

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-06-16T17:02:05+00:00

    Buon Giorno  Norman

    Ho risolto  !!!!   

    Adattando un vecchio  codice di Maurizio Gamberini  alle mie esigenze .....Graaande  e   Grandissima la Community

    Lo riporto .... Funziona

    Private Sub cbModSquadra_Click()

    Dim sh As Worksheet

    Dim sh1 As Worksheet

    Dim i As Long

    Dim wk1 As Workbook

    Dim sCol As Long

    Dim sCol1 As Long

    Dim sRiga As Long

    Dim rngA As Range

    Dim rngB As Range

    Dim c1 As Range

    Dim c2 As Range

    Set wk1 = ThisWorkbook

    Set sh = wk1.Worksheets("Output")

    Set sh1 = wk1.Worksheets("Simulatore")

    10

    With Me

    sCol = tbColonna.Value

    End With

    Set sh = ThisWorkbook.Worksheets("Output")

    With sh

    i = 1

      With Sheets("Output")

       .Cells(i, sCol).Value = lbxSquadre.Text          'descrizione

      End With

    End With

    20

    With Me

    sRiga = tbRiga.Value

    sCol1 = 51

    End With

    Set sh = ThisWorkbook.Worksheets("Output")

    With sh

    i = sRiga

      With Sheets("Output")

       .Cells(i, sCol1).Value = lbxSquadre.Text          'descrizione

      End With

    End With

    30

    Set sh1 = ThisWorkbook.Worksheets("Simulatore")

    Set rngA = sh1.Range("C2:C100")

        Set rngB = sh1.Range("D2")

        For Each c1 In rngB

            For Each c2 In rngA

                If c1.Value = c2.Value Then

                    c2.Value = Prova.tbNuovaSquadra.Text

                End If

            Next

        Next

        Set rngA = Nothing

        Set rngB = Nothing

        Set sh = Nothing

    On Error GoTo XIT

        Application.ScreenUpdating = False

    XIT:

            Application.ScreenUpdating = True

    End Sub

    In Grassetto  la parte adattata  , ho fatto in modo che tramite ListBox1.Click , mi venisse copiato nella Cella D2 del Foglio Simulatore  (rngB) il Valore selezionato (nome Vecchia Squadra )

    e a c2.Value  ho assegnato  il valore della  tbNuovaSquadra .

    Sto' facendo diverse prove e ...per ora funziona .

    Grazie  comunque per la disponibilita' e per tutti i consigli e codici che finora mi ha pazientemente  fornito .

    Adesso posso passare alla parte Statistiche .....    Grazie   Claudio P

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-06-13T10:26:10+00:00

    Buon Giorno  Norman

    ho caricato il file  su DropBox   il Link e' questo

    https://www.dropbox.com/s/q2texw7cim2ivcm/Squadre%20Prova.xlsm?dl=0

    Il cbInserisce_Squadra  , inserisce la Squadra selezionata nella lbxSquadre (ELENCHI)    nelle celle A1,B1,C1,D1,  .......  del Foglio  Output

    Funziona !!

    Il cbModifica , l'ho rinominato , adesso e' cbModSquadra  

    Attualmente  si limita a cambiare il Nome della squadra precedentemente inserito con il nuovo , selezionato sempre nella lbxSquadre ,nella stessa cella del Foglio  Output (se  era  Milan , la Faccio diventare Napoli )

    Quello che vorrei fare sempre tramite il  cbModSquadra  , andare a modificare  nel Foglio simulatore ,nella Colonna C , la Squadra incriminata , .... se  nella colonna  C   e' riportato  10  volte la Squadra Milan   e io ho sostituito  il  Milan   con il Napoli ,

    in Ogni  cella dove e' scritto Milan , deve essere sostituito  con  Napoli ( tutti i Calciatori del Milan ...sono stati comprati dal Napoli  ........   )

    Spero di essere riuscito a spiegarmi ...

    Ti ringrazio per la tua disponibilita'                 Claudio P

    La risposta è stata utile?

    0 commenti Nessun commento