Condividi:        

Inserimento dati in un grafico dalla Stampa Unione

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 23/08/13 12:35

Ragazi scusate se vi disturbo lo pubblico qua perchè mi sembra eccessivo aprire un uovo topic per una stupidata:
Allora il mio problema è che devo attivare un gruppo e la formula qua sotto senza il sheets funziona perfettamente però a me serve prendere un riferimento da un altro foglio diverso da quello in cui è attiva la macro...come faccio? perchè cosi mi da errore...grazie per l'aiuto!
Codice: Seleziona tutto
For i = 1000 To 1007
     For j = 1000 To 1006
     For k = 1000 To 1003
     ActiveSheet.Shapes(sheets("Foglio2").Range("a" & j).Value & sheets("Foglio2").Range("b" & k).Value & sheets("Foglio2").Range("d" & i).Value).Visible = False
    Next k
    Next j
    Next i
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Sponsor
 

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi Anthony47 » 23/08/13 21:45

Puoi inserire la riga che va in errore copiandola nel codice della macro e incollandola nel tuo messaggio?
Quale errore?
Quale e' il nome dell' immagine su cui vuoi lavorare? Se usi il nome direttamente nell' istruzione [quindi ActiveSheet.Shapes("NomeImmagine").Visible = False '/True] funziona? Se Si, quale e' l' istruzione che hai usato?
Di che tipo di macro si tratta (la sua riga di intestazione) e in quale "modulo" e' stata inserita (lo leggi in testa alla finestra del vbe, la riga in genere colorata in azzurro)?

Come vedi le domande sono tante...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 24/08/13 01:55

Allora cerchero di essere più specifico la riga che va in errore è questa me la sottolinea di giallo e mi dice indice non incluso nell'intervallo
Codice: Seleziona tutto
ActiveSheet.Shapes(Sheets(Scrath).Range("a" & j).Value & Sheets(Scrath).Range("b" & k).Value & Sheets(Scrath).Range("d" & i).Value).Visible = False

Se pero io modifico l'istruzione in:
Codice: Seleziona tutto
ActiveSheet.Shapes(Range("a" & j).Value & Range("b" & k).Value & Range("d" & i).Value).Visible = False

tutto funziona perfettamente pero devo copiare le celle che mi interessano nel foglio principale dove c'è la macro e non in un altro foglio come vorrei.
Praticamente l'immagine è composta da 3 nomi(es. "5-4-1Bayern moncoHome")nelle celle a (dalla 100 alla 106 ci sono tutti e 7 i moduli,nella cella b dalla 100 alla 107 gli 8 noi delle squadre,e nella cella d dalla 100 alla 103 ci sono il tipo di maglia)io combinando il contenuto delle 3 celle vado ad attivare o disattivare un gruppo d'immagini piuttosto che un altro! ma ripeto se le celle di riferimento sono nello stesso foglio della macro va tutto perfettamente è quando io devo andare a prendere il riferimento da un altro foglio che nasce il problema...credo che sia il Scheets(scratch) prima dei range a dare il problema.
Potrei anche fare le immagini una a una ma sono veramente tante e quindi cancellarle tutte diventa lunghe invece con il ciclo for con poco me la cavo!
La macro è all'interno del worksheet di tipo change...il codice completo è questo:
Codice: Seleziona tutto
Private Sub worksheet_Change(ByVal Target As Range)

If Target.Address = "$L$4" Or Target.Address = "$O$4" Or Target.Address = "$B$3" Then
     
    'Nascondo tutti i moduli
     ActiveSheet.Shapes("P").Visible = False
     
     For j = 1000 To 1006
     ActiveSheet.Shapes(Range("a" & j).Value).Visible = False
     Next j

    'Cancello tutte le maglie

    ' Maglie giocatori
     For i = 1000 To 1007
     For j = 1000 To 1006
     For k = 1000 To 1003
     ActiveSheet.Shapes(Sheets(Scrath).Range("a" & j).Value & Sheets(Scrath).Range("b" & k).Value & Sheets(Scrath).Range("d" & i).Value).Visible = False
    Next k
    Next j
    Next i
   
     
    ' Maglie portieri

      For i = 1000 To 1007
       For k = 1000 To 1003
            ActiveSheet.Shapes("P" & Range("b" & k).Value & Range("d" & i).Value).Visible = False
        Next k
      Next i
         
         
         
     'Rendo visibile il modulo desiderato
     If Range("L4") <> "" Then ActiveSheet.Shapes(Range("L4").Value).Visible = True
    'Rendo visibile il Portiere
     ActiveSheet.Shapes("P").Visible = True
   
     'Rendo visibile le maglie desiderate
     If Range("L4") <> "" Then ActiveSheet.Shapes(Range("L4").Value & Range("O4").Value & Range("B3").Value).Visible = True
     
     'Rendo visibile la maglia Portiere desiderata
     If Range("L4") <> "" Then ActiveSheet.Shapes("P" & Range("O4").Value & Range("B3").Value).Visible = True
         
End If

Grazie per l'aiuto
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi Anthony47 » 24/08/13 13:03

Scritto cosi', Scrath e' una variabile il cui contenuto e' nullo (a meno che non sia "pubblica" e la compili in qualche altra macro, ma ne dubito).
Se Scrath e' il nome del fogio allora devi scrivere Sheets("Scrath").Range(etc etc

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 24/08/13 15:12

ah ecco vedi...un altra cosa io ho delle combobox dove all'interno ci puo essere un valore e vorrei che al variare di una cella si cancellasse la scritta che c'è dentro la combobox in quel momento(NON IL MENU SOLO LA SCRITTA ATTUALE).
e avevo trovato questa semplice istruzione combobox1.value="" e provata su una combo box normale quest'istruzione funzionava.solo che la mia combobox è raggruppata insieme ad altri oggetti e pur mettendo il nome giusto della combobox non riesco a cancellarla e mi da errore dicendomi "Necessario oggetto"...non si riesce a lavorare su una combobox che è raggruppata?oppure non bisogna richiamarla con il nome combox ma con il nome del gruppo? io ho una combo box che è raggruppata con una casella di testo e il raggruppamento si chiama P.
Ah poi è possibile un operzione del genere:
Codice: Seleziona tutto
for i=0 to 100
Combobox(i).value=""
next i
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 05/09/13 12:48

Cioa ragazzi allora ho finito il programma per il fantacalcio e grazie al vostro aiuto è una bomba...l'unica cosa è che adesso c'è un mio amico che vorrebbe usare il programma ma ha il mac e credo che l'unica parte di codice che possa dargli dei problemi sia questa...ossia quella che crea una cartella in c: di nome Formazioni e quella dove salva l'immagine creata nella cartella "C:Formazioni",non so se anche la parte dove viene lanciata la pagina del browser possa essere un problema???
Potete darmi una mano per fare una conversione per mac?e soprattutto è possibile farlo? Grazie mille per la vostra disponibilità...

Codice: Seleziona tutto
'Creo la cartella Formazioni in c:\Formazioni se non è presente, atrimenti niente!
If Dir("C:\Formazioni", vbDirectory) = "" Then
   Dim FileSystemObj
   Set FileSystemObj = CreateObject("Scripting.FileSystemObject")
   FileSystemObj.CreateFolder "C:\Formazioni"
   MsgBox "Attenzione: E' stata creata la nuova Cartella Formazioni nella Directory C:\", _
   vbInformation, "Avviso"
End If
Set FileSystemObj = Nothing



'Stampo l'immagine della formazione nella cartella c:\Formazioni
MySheet = "Magic Team 13.0"     '<<< Il foglio da "fotografare"
MyArea = "E6:Q41"       '<<< La tua area da fotografare
'
Nominat = Sheets("Magic Team 13.0").Range("I7").Value  '<<< La cella dove si trova il nominativo "corrente"
Nominat1 = Sheets("Magic Team 13.0").Range("B3").Value
'
Sheets(MySheet).Activate
Range(MyArea).Select
GifLargh = Selection.Width        '<<<AGGIUNTA
GifAlt = Selection.Height             '<<<AGGIUNTA
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Sheets("Deposito").Select
Dim ch As ChartObject
Set ch = Sheets("Deposito").ChartObjects.Add(1, 1, GifLargh, GifAlt)
Sheets("Deposito").ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.Paste
OutFile = "C:\Formazioni\" & Nominat & "_" & Nominat1 & "_.png"
Worksheets("Deposito").ChartObjects(1) _
.Chart.Export _
Filename:=OutFile, FilterName:="png"
ActiveSheet.ChartObjects(1).Delete
Sheets(MySheet).Activate
Range("b3").Select
 MsgBox "La formazione è stata salvata nella Cartella C:\Formazioni", _
   vbInformation, "Avviso"



'Apro il gruppo del Fantacalcio su fb
Dim shell As Object
Set shell = CreateObject("shell.application")
shell.Open "https://www.facebook.com/groups/156784634524570/"
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi Anthony47 » 06/09/13 01:06

Beh, per cominciare le directory inserite in stringhe devono rispettare lo standard mac; es i separatori devono essere il "duepunti" (:) invece che il "backslash" (\).
Poi Dir su Mac ha una sintassi diversa che su Win (uso di MacID invece delle estensioni; vedi help on line).
Infine l' oggetto filesystemobject gestisce solo sul mondo windows; devi quindi trovare alternative per l' algoritmo usato nella tua macro. Per cominciare potresti partire da questo articolo dal titolo "Performing File and Folder Operations Programmatically in Excel 2011 for the Mac": http://msdn.microsoft.com/en-us/library ... pers_Intro
Non conosco la compatibilita' tra Excel 2011 per Mac e quella che useresti tu, ma spero che molte cose siano comuni.

Combinerai poi le parti Mac nel tuo codice usando la "compilazione condizionale"
Codice: Seleziona tutto
#If Mac Then
'   le istruzioni specifiche per Mac
#Else
'   le istruzioni specifiche per windows
#End If
'...
'Le istruzioni comuni
'...

Un po' poco, l' unica consolazione e' che... "meglio che diente".

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 06/09/13 11:44

Grazie antony...quindi secondo il tuo discorso l'unico problema dovrei averlo solo nella creazione e controllo della cartella?mentre invece per quanto riguarda il salvataggio dell'immagine(mi basta solo cambiare il percorso "c:\Formazioni") e l'apertura della pagina web non dovrebbero esserci problemi?perchè se è cosi faccio 2 file diversi uno per windows e uno per mac e in quello per mac faccio creare la cartella manualmente...
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi maso989 » 06/09/13 12:49

Antony io per adesso ho modificato cosi il discorso di salvataggio dell'immagine e secondo me dovrebbe funzionare no?mentre per la creazione della cartella è un po più complicato sto provando a cercare un forum che si accupi di office 2011 for mac ma non riesco a trovare niente...se me la vedo male gliela faccio creare manualmente.
Una cosa nel mac non c'è un percorso universale che non debba corrispondere ad un user specifico?come nel caso di c:\Formazioni
posso fare "Macintosh HD:Formazioni"?Grazie per l'aiuto.
Codice: Seleziona tutto
Stampo l'immagine della formazione nella cartella c:\Formazioni
MySheet = "Magic Team 13.0"     '<<< Il foglio da "fotografare"
MyArea = "E6:Q41"       '<<< La tua area da fotografare
'
Nominat = Sheets("Magic Team 13.0").Range("I7").Value  '<<< La cella dove si trova il nominativo "corrente"
Nominat1 = Sheets("Magic Team 13.0").Range("B3").Value
'
Sheets(MySheet).Activate
Range(MyArea).Select
GifLargh = Selection.Width        '<<<AGGIUNTA
GifAlt = Selection.Height             '<<<AGGIUNTA
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Sheets("Deposito").Select
Dim ch As ChartObject
Set ch = Sheets("Deposito").ChartObjects.Add(1, 1, GifLargh, GifAlt)
Sheets("Deposito").ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.Paste

If Not Application.OperatingSystem Like "*Mac*" Then
    'Is a Windows user.
    OutFile = "C:\Formazioni\" & Nominat & "_" & Nominat1 & "_.png"
    Else   'Is a Mac user so you need to test whether the product is Excel 2011 or later
        If Val(Application.Version) > 14 Then
        OutFile = "Macintosh HD:Users:<user name>:Documents:datafiles:Formazioni:" & Nominat & "_" & Nominat1 & "_.png"
        End If
End If

Worksheets("Deposito").ChartObjects(1) _
.Chart.Export _
Filename:=OutFile, FilterName:="png"
ActiveSheet.ChartObjects(1).Delete
Sheets(MySheet).Activate
Range("b3").Select
 MsgBox "La formazione è stata salvata nella Cartella C:\Formazioni", _
   vbInformation, "Avviso"
maso989
Utente Junior
 
Post: 14
Iscritto il: 17/08/13 13:42

Re: Inserimento dati in un grafico dalla Stampa Unione

Postdi Anthony47 » 07/09/13 00:12

Non ho mac per cui tocca a te progettare le modifiche e farne il collaudo.

Quanto alla gestione file e directory, il link che ti ho passato ieri sera mi sembra attinente con quanto dovresti fare ("Performing File and Folder Operations Programmatically in Excel 2011 for the Mac")

Per il resto posso solo fare il tifo e dare qualche suggerimento vago...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Inserimento dati in un grafico dalla Stampa Unione":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti