Excel Forum Per condividere esperienze su Microsoft Excel

Scrivere su 2 celle diverse su 2 Fogli diversi vba

  • Messaggi
  • OFFLINE
    Alessandro Zannella
    Post: 2
    Registrato il: 17/07/2019
    Utente Junior
    2019
    00 21/07/2019 07:59
    Salve a tutti mi sto scervellando da matti solo voi mi potete aiutare il mio problema che nel primo foglio uso la userform per inserire i dati nelle varie celle sparse

    Private Sub cmbAggiungi_Click()
    Range("B2") = txttipomezzo.Text
    Range("B3") = txttarga.Text
    Range("D3") = txtdim.Text
    Range("B4") = txtattivita.Text
    Range("D4") = txtcau.Text
    Range("B32") = txtdatauscita.Text
    Range("B34") = txtfirmaritiro.Text
    Range("d34") = txtvistoalluscita.Text
    Range("d31") = txtnumeroricevuta.Text
    Range("B6") = txtestintore.Text
    Range("d13") = txtlucchetti.Text
    frmAggiungilista.Hide

    Unload Me

    ora per scrivere i dati immessi nel primo foglio su secondo foglio sulla stessa riga ma colonne diverse ho provato questa stringa

    Sheets("CRONOLOGIA COMANDATE").Range("A3").End(xlDown).Offset(1, 0) = txttipomezzo.Value

    e gia' qui parto male perche' mi da errore la mia domanda come posso scrivere sulle varie textbox che ho sulla userform contemporaneamente tenendo presente che nel foglio cronologia voglio che mi compili la cella vuota grazie in anticipo
  • OFFLINE
    by sal
    Post: 5.720
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    10 21/07/2019 08:20
    scrivere su fogli diversi
    Ciao Alessandro, senza un file è difficile risponderti comunque questo codice

    Sheets("CRONOLOGIA COMANDATE").Range("A3").End(xlDown).Offset(1, 0) = txttipomezzo.Value


    dovrebbe scrivere sull'ultima cella della colonna "A", in quanto se nella colonna "A" ce una cella vuota si ferma a quella cella e scrive nella cella sottostante che è piena dal tuo codice.

    se vuoi scrivere sull'ultima cella vuota della colonna "A" sarebbe meglio prima definire la riga con una variabile esempio

    Dim R
    
    R = Sheets("Cronologia Comandate").cells(rows.count,1).end(Xlup).Row +1
    sheets("Cronologia Comandate").cells(R,1) = txttipomezzo.value


    se si stratta di 1 solo dato se sono diversi, a me scoccia ripetere parte di codici, esempio

    Sheets("Cronologia Comandate")
    meglio usare se sono di più
    
    With Sheets("Cronologia Comandate")
    .Cells(R,1) = Txttipomezzo
    .Cells(R,5) = txtestintore
    .etc...
    End With
    


    Ciao By Sal [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    Alessandro Zannella
    Post: 2
    Registrato il: 17/07/2019
    Utente Junior
    2019
    00 21/07/2019 09:20
    scrivere su 2 Celle diverse su 2 Fogli diversi vba
    inanzi tutto grazie per la risposta allego il file cosi ti fai una idea
    il mio problema e' la prima riga della cronologia comandate la devo associare al foglio vm90 t2 dei dati che ho immesso voglio che quando andro' a compilare e ricompilare il foglio vm90 t2 mi compila le celle relative che si trovano in cronologia comandate e mi compila al primo rigo vuoto che trova
    come posso fare cio'?
  • OFFLINE
    Alessandro Zannella
    Post: 3
    Registrato il: 17/07/2019
    Utente Junior
    2019
    10 21/07/2019 09:47
    HO PROVATO IL TUO CODICE E DEVO DIRE CHE FUNZIONA ALLA GRANDE ADESSO MI PRESTO ALLA COMPILAZIONE PERO' NON HO CAPITO IN Cells(R,1)sta per? e perche' no Cells("a1") te lo chiedo da nabbo

    Sheets("Cronologia Comandate").Cells(R, 1) = txttipomezzo.Value
    [Modificato da Alessandro Zannella 21/07/2019 09:49]
  • OFFLINE
    patel45
    Post: 4.165
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 21/07/2019 16:33
    ci sono 2 modi per indirizzarsi alla cella A1
    cells(1,1)
    range("A1")
    il primo è comodo quando si deve ciclare il num di riga o di colonna, il secondo quando il range è fisso
    [Modificato da patel45 21/07/2019 16:35]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    by sal
    Post: 5.721
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 21/07/2019 17:47
    Cells
    Ciao Alessandro, ed un saluto a Patel.

    maggiormente specialmente per il VBA, io uso "Cells", molto più versatile di Range.
    Vediamo prima come viene selezionata la cella.

    la Sintassi è:

    Range("Colonna:Riga")
    Cells(Riga,Colonna)
    

    parliamo di Cells, come vedi è invertito l'ordine, si scrive prima il numero di riga e poi la colonna in NUMERO, A=1, B=2, C=3, Etc..

    ma ciò non toglie che posso anche scrivere la lettera in Cells in questo modo

    Cells(1, "A")


    Adesso poniamo il caso che vorrei spostarmi di 5 colonne, nel primo caso sono obbligato a scrivere

    Range("F1")


    con Cells non devo fare il calcolo per sapere la lettera della colonna, ma basta scrivere

    Cells(1, 1 + 5)


    lo stesso se vorrei spostarmi di 5 Righe

    Cells(1 + 5, 1)


    Cio è comodo specialmente quando si tratta di scrivere dati con dei cicli, come ha detto Patel, non posso fare,

    For x = 1 to 5
        Range("A + x:1")="Pippo"
    next x


    ma posso benissimo fare

    For x = 1 to 5
        Cells(1, 1 + x)="Pippo"
    next x


    spero di aver chiarito il tuo dubbio

    Ciao By Sal [SM=x423051]



    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    Alessandro Zannella
    Post: 4
    Registrato il: 17/07/2019
    Utente Junior
    2019
    00 21/07/2019 21:03
    Grazie ancora per le delucidazioni farò un po' di esercizi con i codici da te scritti sono molto grato per l'aiuto che mi date ad apprendere grazie ancora
  • 15MediaObject5,0027 2