Risultati da 1 a 11 di 11

Discussione: Valorizzare colonne da Userform



  1. #1
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Valorizzare colonne da Userform

    Buongiorno a tutti,
    Vorrei creare una routine che assegni dati da una userform a un range di celle e che valorizzi anche altre celle.
    In pratica con la Userform "Cronologia" inserisco i dati nel range "F4-J6" di un foglio excel 2013. Vorrei valorizzare in automatico anche le colonne "GOL" e "ET" (vedi allegato). Se nella prima riga del range bordato inserisco tramite Userform il numero 6 a "BIANCHI" con evento "GOL" vorrei che mi segnasse 1 nella riga del numero 6 della squadra "BIANCHI" e così di seguito sommando i dati presenti e non cancellandoli. Allego per facilitare la spiegazione il file in oggetto.
    Grazie per la collaborazione e comprensione.
    File Allegati File Allegati

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao,
    Per come hai sistemato i dati non è tanto "lineare" il riempimento....

    Ho scritto questo prima di rendermi conto che nella userform inserisci anche l'evento, quindi si dovrebbe modificare qualcosa.
    Il codice da per scontato che l'evento nelle celle H4 e H6 sia "GOL" e quello nella cella H5 sia "ET".
    Comunque, puoi sempre modificarlo per la tua reale esigenza (in rosso è la parte aggiunta):

    Codice: 
    Private Sub CommandButton1_Click()
    Worksheets("Foglio1").Range("F4") = TextBox1.Text
    Worksheets("Foglio1").Range("G4") = TextBox2.Text
    Worksheets("Foglio1").Range("H4") = TextBox3.Text
    Worksheets("Foglio1").Range("I4") = TextBox4.Text
    Worksheets("Foglio1").Range("J4") = TextBox5.Text
    Worksheets("Foglio1").Range("F5") = TextBox6.Text
    Worksheets("Foglio1").Range("G5") = TextBox7.Text
    Worksheets("Foglio1").Range("H5") = TextBox8.Text
    Worksheets("Foglio1").Range("I5") = TextBox9.Text
    Worksheets("Foglio1").Range("J5") = TextBox10.Text
    Worksheets("Foglio1").Range("F6") = TextBox11.Text
    Worksheets("Foglio1").Range("G6") = TextBox12.Text
    Worksheets("Foglio1").Range("H6") = TextBox13.Text
    Worksheets("Foglio1").Range("I6") = TextBox14.Text
    Worksheets("Foglio1").Range("J6") = TextBox15.Text
    
    
    uriga = Range("B" & Rows.Count).End(xlUp).Row
    For i = 6 To 7
        For j = 1 To uriga
            If Range("B" & j).Value = Cells(3, i).Value Then
                If Cells(4, i) <> "" Or Cells(6, i) <> "" Then
                    For x = j + 1 To j + 11
                        If Range("A" & x).Value = Cells(4, i).Value Or _
                        Range("A" & x).Value = Cells(6, i).Value Then
                            Range("C" & x).Value = Range("C" & x).Value + 1
                        End If
                    Next x
                End If
                If Cells(5, i) <> "" Then
                    For x = j + 1 To j + 11
                        If Range("A" & x).Value = Cells(5, i).Value Then
                            Range("D" & x).Value = Range("D" & x).Value + 1
                        End If
                    Next x
                End If
            End If
        Next j
    Next i
    End Sub
    Ti riallego il file...
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Ciao Cromagno,
    ho provato a modificare il codice che hai postato, ma mi inserisce 1 in tutta la colonna da C3 a C12, indipendentemente dall'evento che aggiungo poi nel caso debba aumentare il Range della cronologia (quella compresa tra F4 e J6) come devo comportarmi?
    Grazie per la pazienza

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da carlo861 Visualizza Messaggio
    Ciao Cromagno,
    ho provato a modificare il codice che hai postato, ma mi inserisce 1 in tutta la colonna da C3 a C12, indipendentemente dall'evento che aggiungo poi nel caso debba aumentare il Range della cronologia (quella compresa tra F4 e J6) come devo comportarmi?
    Grazie per la pazienza
    Ciao Carlo,
    senza vedere quello che hai modificato è difficile che possa dirti cosa c'è che non va... :186:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  5. #5
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Al tuo file ho eliminato i riferimenti alle celle che davano per scontato il riferimento ma mi da errore.
    File Allegati File Allegati

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da carlo861 Visualizza Messaggio
    Al tuo file ho eliminato i riferimenti alle celle che davano per scontato il riferimento ma mi da errore.
    Scusa ma... è normale che non funziona più. Hai cancellato il confronto principale nella condizione "If".
    Va bene eliminare quello che hai eliminato ma devi pur sostituirlo con qualcos'altro.

    Gli darò un'occhiata...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  7. #7
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Ok ti ringrazio, se puoi darmi anche la spiegazione in modo tale che poi posso adattarlo al mio progetto che ha 15 nomi per squadra e la userform con 20 righe invece di tre.

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da carlo861 Visualizza Messaggio
    Ok ti ringrazio, se puoi darmi anche la spiegazione in modo tale che poi posso adattarlo al mio progetto che ha 15 nomi per squadra e la userform con 20 righe invece di tre.
    Ciao,
    per la spiegazione, trattandosi solamente di cicli "For...next" devi leggerti qualcosa al riguardo, ad esempio qui:
    http://forum.wintricks.it/showpost.p...2&postcount=23

    anche se ti consiglierei di leggere la guida dall'inizio:
    http://forum.wintricks.it/showthread.php?t=155252

    Questo è il ciclo modificato (ribadisco che la disposizione dei dati è troppo caotica e che comunque ci sarebbero da aggiungere dei controlli su quello che scrivi nelle TextBox della UserForm):

    Codice: 
    Private Sub CommandButton1_Click()
    Worksheets("Foglio1").Range("F4") = TextBox1.Text
    Worksheets("Foglio1").Range("G4") = TextBox2.Text
    Worksheets("Foglio1").Range("H4") = TextBox3.Text
    Worksheets("Foglio1").Range("I4") = TextBox4.Text
    Worksheets("Foglio1").Range("J4") = TextBox5.Text
    Worksheets("Foglio1").Range("F5") = TextBox6.Text
    Worksheets("Foglio1").Range("G5") = TextBox7.Text
    Worksheets("Foglio1").Range("H5") = TextBox8.Text
    Worksheets("Foglio1").Range("I5") = TextBox9.Text
    Worksheets("Foglio1").Range("J5") = TextBox10.Text
    Worksheets("Foglio1").Range("F6") = TextBox11.Text
    Worksheets("Foglio1").Range("G6") = TextBox12.Text
    Worksheets("Foglio1").Range("H6") = TextBox13.Text
    Worksheets("Foglio1").Range("I6") = TextBox14.Text
    Worksheets("Foglio1").Range("J6") = TextBox15.Text
    
    
    uriga = Range("B" & Rows.Count).End(xlUp).Row
    For i = 6 To 7
        For j = 1 To uriga
            If Range("B" & j).Value = Cells(3, i).Value Then
                For y = 4 To 6
                    If Cells(y, i).Value <> "" Then
                        For x = j + 1 To j + 11
                            If Range("A" & x).Value = Cells(y, i).Value Then
                                If Range("H" & y).Value = "GOL" Then
                                    Range("C" & x).Value = Range("C" & x).Value + 1
                                ElseIf Range("H" & y).Value = "ET" Then
                                    Range("D" & x).Value = Range("C" & x).Value + 1
                                End If
                            End If
                        Next x
                    End If
                Next y
            End If
        Next j
    Next i
    End Sub
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. #9
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie cromagno,
    comunque ora funziona l'importante e non dimenticarsi di inviare i dati solo alla fine dopo aver compilato tutto altrimenti fa somme strane nonostante, purtroppo la situazione caotica è prerogativa di chi non sa fare e cerca soluzioni alternative. Ora sto cercando di adattare il tutto al mio progetto, puoi spiegarmi la riga For x = j + 1 To j + 11

  10. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da carlo861 Visualizza Messaggio
    ...puoi spiegarmi la riga For x = j + 1 To j + 11
    Con il ciclo precedente (variabile "j") mi trovo la riga dove inizia la parte di tabella in cui inserire i valori:

    Codice: 
    For j = 1 To uriga
            If Range("B" & j).Value = Cells(3, i).Value Then
    una volta trovata quella riga, essendo ogni tabella (Bianchi,Neri) costituita da 10 righe (giocatori) faccio iniziare il nuovo ciclo dalla riga sotto (x = j +1) fino 10 righe sotto (to j+10).

    In effetti quel j +11 è sbagliato.... dovresti scrivere j +10

    Codice: 
    For x = j + 1 To j + 10
    se hai risolto il problema, segna questa discussione come "RISOLTO".
    Vai sul menù "Strumenti Discussione" (all'inizio del thread) e scegli la voce "Segna questo thread come risolto...".

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #11
    L'avatar di carlo861
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Bari
    Messaggi
    28
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie cromagno alla prossima.

Discussioni Simili

  1. [Risolto] Userform Ricerca su colonne diverse
    Di tiziano64 nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 27/02/17, 15:26
  2. [UserForm] userform in pdf
    Di aurelio125 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 24/02/17, 01:04
  3. UserFORM
    Di Tiziano nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 02/11/16, 18:13
  4. Userform che filtra valore in più colonne
    Di nessi nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 22/07/16, 22:55
  5. Grafico con istogrammi in colonne raggruppate e in colonne in pila
    Di Duchess@71 nel forum Domande sui Grafici di Excel
    Risposte: 2
    Ultimo Messaggio: 10/05/16, 08:49

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •