Risultati da 1 a 9 di 9

Discussione: macro che prende dati da una tabella e le inserisce in grafici in vari fogli



  1. #1
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    macro che prende dati da una tabella e le inserisce in grafici in vari fogli

    Ciao a tutti eccomi qua di nuovo,

    sono arrivato fino a questo punto e ora non riesco a capire come andare avanti.

    La macro che ho creato (grazie anche a voi) fin ora praticamente mi crea delle "tabelle" in base ai 2 parametri o a 1 solo che sono n. sessioni e n. giri.

    -Allora adesso vorrei come prima cosa capire come far iniziare una tabella dopo tot righe dall'ultima riga della precedente in modo tale che non si sovrappongano se il numero di sessioni è superiore a 8.

    - poi dovrei modificare le 2 tabelle pilota e tempi con una sola riga e non 2 .

    - poi qua viene il "complicato" per me ovviamente :) , una volta eseguita questa macro , le tabelle verranno compilate a mano con i numeri dopo di che devo riuscire a creare , nel foglio grafici tempi un grafico appunto con nella ascissa i giri e nella ordinata i tempi presi dalla tabella tempi ( magari andando in sequenza una riga dopo laltra in modo che si possa riconoscere ogni pilota)

    - e poi alla fine come ultima cosa dovrei per ogni foglio sessione creato , creare un grafico con sempre in ascissa i giri e in ordinata i tempi ma solo co i dati di quella sessione (1 riga sola della tabella tempi)

    Grazie mille

  2. #2
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8
    Nessuno che riesce a darmi una mano anche a pezzi in modo tale da poter lavorare anche io sopra, e non far fare tutto a voi .

    Grazie

  3. #3

    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 Sergio,
    avevo già aperto il tuo file ma vedendo la lunghezza del codice ho rinunciato all'istante (colpa del registratore di macro).
    Comunque, con un pò di tempo son riuscito a capire dove si poteva intervenire per distanziare le tabelle.
    Ti conviene usare altre tre variabili:
    1 per sapere a quante righe di distanza vuoi le tabelle
    1 per indicare la riga di inizio della seconda tabella
    1 per indicare la riga di inizio della terza tabella

    Ti riporto il codice solo dal punto in cui ho modificato (dopo la creazione della prima tabella), e dovrebbe soddisfare le tue prime due richieste:

    Codice: 
    '=============================================================
    'Da qui i riferimenti devono essere relativi
    
    
    'Stabilisco le righe di distanza tra le tabelle
    DistTabelle = 13
    
    
    'Indico da che riga inizierà la Tabella 2
    InizTabella2 = 7 + (nsess * 2) + DistTabelle + 1
        
    'Scrivo le intestazioni per la tabella 2
        Range("B" & InizTabella2 - 1).Value = "Pilota"
        Range("C" & InizTabella2 - 1).Value = "Tem. Ambiente"
        Range("D" & InizTabella2 - 1).Value = "Tem. Asfalto"
        Range("E" & InizTabella2 - 1).Value = "Note Test"
        Range("F" & InizTabella2 - 1).Value = "Sensazioni Pilota"
        Range("B" & InizTabella2 - 1 & ":F" & InizTabella2 - 1).Select
        Selection.Font.Bold = True
    
    
    'Creo la tabella 2
        Range("B8").Copy Range("A" & InizTabella2)
        Range("A" & InizTabella2).Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
        End With
        ActiveCell.Copy Range("B" & InizTabella2 & ":F" & InizTabella2)
        Range("A" & InizTabella2 & ":F" & InizTabella2).Copy
        Range("A" & InizTabella2 & ":A" & InizTabella2 + nsess - 1).Select
        ActiveSheet.Paste
        
        
    'scrivo i valori nella colonna A della tabella 2
        For i = 0 To nsess - 1
            Range("A" & InizTabella2 + i).Value = i + 1
        Next i
        
    'Indico da che riga inizierà la Tabella 3
    InizTabella3 = (InizTabella2 + nsess - 1) + DistTabelle + 1
    
    
    'Scrivo l'intestazione della tabella3
    Range("A" & InizTabella3 - 1).Value = "Pilota"
    
    
    'Creo la Tabella 3 copiando la formattazione tabella 2
    Range("A" & InizTabella2 & ":F" & InizTabella2 + nsess - 1).Copy
    Range("A" & InizTabella3 & ":F" & InizTabella3 + nsess - 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Nell'ultima parte del tuo codice ho disattivato alcune righe perchè non ho capito il loro scopo e con valori alti per le sessioni cancellavano l'ultima tabella:

    Codice: 
    Dim x As Integer, y As Integer, j As Integer, casella As Range
    
    
    Set casella = Range("E2:E3")
    x = Range("A3")
    y = Range("C3")
    
    
    Application.ScreenUpdating = False
    'non ho capito cosa deve fare
    '===============================================================
    'casella.Copy
    'For j = 1 To y
        'For i = 54 To 54 + (x - 1) * 2 Step 2
            'Cells(i, j).PasteSpecial xlPasteAll
        'Next i
    'Next j
    '===============================================================
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Per quanto riguarda i grafici non credo di poterti aiutare (mai trattati i grafici con VBA e trattati molto poco con excel in generale) ma in ogni caso, per chi volesse farlo sarebbe meglio che allegassi un file con le tabelle già compilate ed almeno un esempio (fatto manualmente) dei grafici che vorresti ottenere.

    Ti lascio il file in allegato....

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

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8
    Grazie mille per adesso :) provo il tutto e poi vediamo di allegare il file gia compilato .

  6. #5
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    'Scrivo l'intestazione della tabella3
    Range("A" & InizTabella3 - 1).Value = "Pilota"


    'Creo la Tabella 3 copiando la formattazione tabella 2
    Range("A" & InizTabella2 & ":F" & InizTabella2 + nsess - 1).Copy
    Range("A" & InizTabella3 & ":F" & InizTabella3 + nsess - 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    [/CODE]

    Nell'ultima parte del tuo codice ho disattivato alcune righe perchè non ho capito il loro scopo e con valori alti per le sessioni cancellavano l'ultima tabella:

    Codice: 
    Dim x As Integer, y As Integer, j As Integer, casella As Range
    
    
    Set casella = Range("E2:E3")
    x = Range("A3")
    y = Range("C3")
    
    
    Application.ScreenUpdating = False
    'non ho capito cosa deve fare
    '===============================================================
    'casella.Copy
    'For j = 1 To y
        'For i = 54 To 54 + (x - 1) * 2 Step 2
            'Cells(i, j).PasteSpecial xlPasteAll
        'Next i
    'Next j
    '===============================================================
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Allora ho controllato il codice e l'ultima parte è la creazione della 3° tabella dove in colonna il numero delle sessioni e in riga il numero dei giri. Range a3 e c3 , invece ora praticamente prende la 2 e la copia pari pari.

  7. #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 Sergio8903 Visualizza Messaggio
    Allora ho controllato il codice e l'ultima parte è la creazione della 3° tabella dove in colonna il numero delle sessioni e in riga il numero dei giri. Range a3 e c3 , invece ora praticamente prende la 2 e la copia pari pari.
    Ciao,
    allora ti basta modificare il codice per la creazione della terza tabella in questo modo:

    Codice: 
    'Indico da che riga inizierà la Tabella 3
    InizTabella3 = (InizTabella2 + nsess - 1) + DistTabelle + 1
    
    
    'Numero di giri (che saranno le colonne della tabella)
    ngiri = Range("C3").Value
    
    
    'Scrivo l'intestazione della tabella3
    Range("A" & InizTabella3 - 1).Value = "Pilota"
    
    
    'Creo la Tabella 3 copiando la formattazione tabella 2
    Range("B" & InizTabella2).Copy Range(Cells(InizTabella3, 1), Cells(InizTabella3 + nsess - 1, ngiri))
    Application.CutCopyMode = False
    Ti riallego il file...

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

  8. I seguenti utenti hanno dato un "Like"


  9. #7
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8
    eccomi, allora ho compilato il foglio master una volta inseriti i n. giri e n. sessioni e fatto partire la macro.

    ora quello che dovrei riuscire a fare è :

    devo riuscire a creare , nel foglio grafici tempi un grafico appunto con nella ascissa i giri e nella ordinata i tempi presi dalla tabella tempi ( magari andando in sequenza una riga dopo laltra in modo che si possa riconoscere ogni pilota)

    - e poi alla fine come ultima cosa dovrei per ogni foglio sessione creato , creare un grafico con sempre in ascissa i giri e in ordinata i tempi ma solo co i dati di quella sessione (1 riga sola della tabella tempi)

    ovviamente tutte le volte le dimensioni delle tabella cambiano.


  10. #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
    Ciao,
    purtroppo ti ripeto che col VBA non ho mai trattato i grafici, quindi partirei da zero..

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

  11. #9
    L'avatar di Sergio8903
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Siena
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao,
    purtroppo ti ripeto che col VBA non ho mai trattato i grafici, quindi partirei da zero..
    è possibile creare una macro che per ogni sessione fatta possa creare una tabella con tutti i dati di quella specifica sessione nel suo relativo foglio ?

    prendendo spunto dal file sopra che ho compilato.

    grazie mille

    :)

Discussioni Simili

  1. Macro per importare vari txt
    Di Loretta nel forum Domande su Excel VBA e MACRO
    Risposte: 33
    Ultimo Messaggio: 22/05/17, 10:22
  2. [Risolto] Creare Macro che filtra dati Tabella con vari criteri
    Di andrea1897 nel forum Domande su Excel VBA e MACRO
    Risposte: 30
    Ultimo Messaggio: 13/11/16, 23:33
  3. Risposte: 18
    Ultimo Messaggio: 29/07/16, 17:07
  4. Problema grafici dinamici su più fogli
    Di IngMarco nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 04/01/16, 01:47
  5. Copiare dati da vari fogli Excel Nuova risposta File allegato
    Di daniel84 nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 08/12/15, 20:45

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
  •