Risultati da 1 a 15 di 15

Discussione: Macro che effettua le operazioni tenendo conto dell'ultima riga con dati



  1. #1
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Macro che effettua le operazioni tenendo conto dell'ultima riga con dati

    Ciao a tutti,
    per iniziare a capire qualcosina in più sulle macro, ho provato, usando il registratore, ad automatizzare tre semplici operazioni dentro un file che importo da fonte esterna.
    E precisamente (https://www.dropbox.com/s/rhww2r1kpj...ro_1.xlsm?dl=0) :
    pulsante 1: sostituisce il punto con i due punti nelle due colonne deglio orari
    pulsante 2: inserisce in ogni singola riga, la formula per calcolare il tempo impiegato
    pulsante 3: inserisce il CERCAVERT per identificare l'impianto
    Le ho divise in tre pezzi per meglio capire la dinamica ed i vostri eventuali interventi.

    A questo punto vorrei capire se e come la macro può "capire" che l'operazione deve farla non fino alla riga 21 come da me impostato ma fino all'ultima riga che presenta dei dati (in questo caso la riga 29)

    Grazie in anticipo
    Gene

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Devi attribuire ad una variabile l'ultimo valore per esempio
    uRiga=range(A & Cells.rows).end(xlup).row

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  3. #3
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3340
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Ciao a tutti,
    per iniziare a capire qualcosina in più sulle macro, ho provato, usando il registratore, ad automatizzare tre semplici operazioni dentro un file che importo da fonte esterna.
    E precisamente (https://www.dropbox.com/s/rhww2r1kpj...ro_1.xlsm?dl=0) :
    pulsante 1: sostituisce il punto con i due punti nelle due colonne deglio orari
    pulsante 2: inserisce in ogni singola riga, la formula per calcolare il tempo impiegato
    pulsante 3: inserisce il CERCAVERT per identificare l'impianto
    Le ho divise in tre pezzi per meglio capire la dinamica ed i vostri eventuali interventi.

    A questo punto vorrei capire se e come la macro può "capire" che l'operazione deve farla non fino alla riga 21 come da me impostato ma fino all'ultima riga che presenta dei dati (in questo caso la riga 29)

    Grazie in anticipo
    Gene
    Ciao Gene
    uriga = Range("A" & Rows.Count).End(xlUp).Row

    questa istruzione ti trova il valore della prima riga vuota. (es. 29)
    Naturalmente la "A" va sostituita dalla lettera della colonna in cui ci sono i valori.

    ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  4. #4
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    Sera a tutti,
    il dummie che è in me vi conferma con...piacere di non aver capito nà mazza..:251:
    Infatti ho provato ad incollare la riga in tutte le posizioni della macro ma senza ottenere il risultato sperato.
    Nel codice che segue:
    Codice: 
    Sub inserisce_tempi()
    '
    ' inserisce_tempi Macro
    '
    
    '
        Range("K2").Select
        ActiveCell.FormulaR1C1 = "=+RC[-6]-RC[-7]+IF(RC[-7]>RC[-6],1)"
        Range("K2").Select
        Selection.AutoFill Destination:=Range("K2:K21"), Type:=xlFillDefault
        Range("K2:K21").Select
    End Sub
    Dove và inserita la riga:
    Codice: 
    uriga = Range("K" & Rows.Count).End(xlUp).Row
    E in cosa differisce l'istruzione di Rubik rispetto a quella di Baloon?

    Grazie
    Gene

  5. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Non considerare la mia (c'è qualche errore). Usa quella di baloon

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Prova con:
    range("k2:k" & uRiga & ") "

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  7. #7
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    Ciao,
    ho inserito la riga prima dell' END SUB ma mi da errore di sintassi.

    Gene

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Prova così:
    Codice: 
    Sub inserisce_tempi()
    '
    ' inserisce_tempi Macro
    '
    
    '
        Range("K2").FormulaR1C1 = "=+RC[-6]-RC[-7]+IF(RC[-7]>RC[-6],1)"
        
    
    uriga = Range("K" & Rows.Count).End(xlUp).Row
    
        Range("k2").AutoFill Destination:=Range("K2:K" & uRiga ), Type:=xlFillDefault
       
    End Sub


    Inviato dal mio GT-I9301I utilizzando Tapatalk

  9. #9
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    rien à faire



    Gene

  10. #10
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3216
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Salve a tutti.
    Ho l'impressione che ci sono parecchi dipendenti del UCAF (Ufficio Complicazioni Affari Semplici).
    Provate questa macro e fatemi sapere se va oppure no
    Codice: 
    Sub inserisce_tempi()
        uRg = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To uRg
            Cells(i, 11).FormulaR1C1 = "=+RC[-6]-RC[-7]+IF(RC[-7]>RC[-6],1)"
        Next i
    End Sub
    Ovviamente se le celle sono formattate nel modo giusto.

    Ciao,
    Mario

  11. #11
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    Come nel telefilm di Rintintin, quando arriva la cavalleria...non c'è nè per nessuno.

    Grazie Mario, ovviamente funziona.:87:_

    Gene

  12. #12
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    La seconda macro partendo dal codice:
    Codice: 
    Sub inserisce_impianti()
    '
    ' inserisce_impianti Macro
    '
        Range("L2").Select
        ActiveCell.FormulaR1C1 = _
            "=IFERROR(VLOOKUP(RC[-9],Legenda!R2C1:R22C2,2,0),"""")"
        Range("L2").Select
        Selection.AutoFill Destination:=Range("L2:L21"), Type:=xlFillDefault
        Range("L2:L21").Select
        Range("J2").Select
    End Sub
    e ragionando su modifica Marius, doveva trasformarsi in:

    Codice: 
    Sub inserisce_impianti()
    '
    ' inserisce_impianti Macro
    '
    
    '
        uRg = Cells(Rows.Count, 2).End(xlUp).Row
        For i = 3 To uRg
        Cells(i, 12).FormulaR1C1 = _
            "=IFERROR(VLOOKUP(RC[-9],Legenda!R2C1:R22C2,2,0),"""")"
        Next i
    End Sub
    Ma non funziona!

    Gene

  13. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Funziona, funziona, solo che il cerca.vert restituisce errore e con la funzione SE.ERRORE(valore;"") restituisce "vuoto"

    Piccola variante senza ciclo che inserisce tempi e impianti contemporaneamente.
    Codice: 
    Sub Inserisce_Tempi_Impianti()
    Dim uRiga As Long
    
    
    uRiga = Range("A" & Rows.Count).End(xlUp).Row
        
    Range("K2:K" & uRiga).FormulaR1C1 = "=+RC[-6]-RC[-7]+IF(RC[-7]>RC[-6],1)"
    
    
    Range("L2:L" & uRiga).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-9],Legenda!R2C1:R22C2,2,0),"""")"
        
    End Sub
    P.S. Qualche volta vincevano anche gli Indiani:166:

  14. I seguenti 2 utenti hanno dato un "Like" a Rubik72 per questo post:


  15. #14
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3216
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Come detto prima, complichiamo le cose facili :32:
    Bisogna definire come "Impianti" la tabella impianti in Legenda
    Codice: 
    Sub inserisce_impianti()
        On Error Resume Next
        uRg = Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To uRg
            Cells(i, 12) = Application.WorksheetFunction.VLookup(Range("C" & i).Text, Range("Impianti"), 2, False)
        Next i
    End Sub
    Come ha detto Gene, arriva la cavalleria e vince!!! :166:

    @Rubik
    ottima la macro per fare tutto insieme!

    Ciao a tutti, Mario

  16. I seguenti 2 utenti hanno dato un "Like" a Marius44 per questo post:


  17. #15
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    Grandi entrambi. :261:.

    Gene

Discussioni Simili

  1. [Risolto] sommare dati tenendo conto della colonna precedente
    Di AndreaLago nel forum Domande su Excel in generale
    Risposte: 25
    Ultimo Messaggio: 21/01/17, 16:49
  2. [Risolto] Come sommare ora inizio a ora fine tenendo conto dell'orario di lavoro e giorni feriali
    Di sangylordy nel forum Domande su Excel in generale
    Risposte: 40
    Ultimo Messaggio: 17/11/16, 19:57
  3. Calcolare media tenendo conto del mese e dell'impianto
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 13/06/16, 23:59
  4. Copiare un valore tenendo conto dell'etichetta del foglio di lavoro
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 04/02/16, 00:16
  5. Calcolare i minuti di fermo impianto tenendo conto dell'orario di lavoro
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 26
    Ultimo Messaggio: 21/01/16, 09:59

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
  •