Salva con nome



  • Salva con nome
    di Marzia (utente non iscritto) data: 29/07/2010

    Ciao a tutti, non so niente di vba e ho copiato un codice qua e là ma non funziona. premetto che uso excel 2004 su mac. ho bisogno di salvare un file .xls che prende il nome da 2 celle e in una specifica posizione sul mac. con questo codice però il nuovo file viene salvato a caso nella prima finestra aperta sul finder e in più tutto il percorso viene incluso nel nome del file prima dei valori delle celle e dell'estensione. forse è un problema legato al mac?
    chi mi può aiutare?? grazie mille!! marzia
     
    Sub salva()
    Dim C As String, directory As String
    C = "" & Range("C3") & "-" & Range("J1").Value
    directory = "/localhost/Volumes/Amministrazione/Amministrazione/SchedeLavoriClienti/2010/"
    ActiveWorkbook.SaveAs Filename:=directory & C & ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub



  • di Albatros54 (utente non iscritto) data: 30/07/2010

    Prova in questo threand, troverai quello che cerchi
    ciao
    albatros54

    h_t_t_p://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/7b28443f56277cc8/5b697283327b3247?lnk=gst&q=salvare+file+in+directory#5b697283327b3247



  • di Marzia (utente non iscritto) data: 30/07/2010

    Grazie albatros ma anche questo codice fa uguale, devo trovare qualcuno che usa excel su mac. grazie. ciao



  • di Big ronnie (utente non iscritto) data: 30/07/2010

    Ciao marzia,prova così, supponendo che il tuo hard disk si chiami c.

    ciao big
     
    Sub salva()
    Dim C As String, directory As String
    C = "" & Range("C3") & "-" & Range("J1").Value
    directory = "C:/localhost/Volumes/Amministrazione/Amministrazione/SchedeLavoriClienti/2010/"
    ActiveWorkbook.SaveAs Filename:=directory & C & ".xls
    End Sub
    



  • di Marzia (utente non iscritto) data: 31/07/2010

    Grazie big,
    il disco su mac non si chiama "c" come su pc e il percorso ha una sintassi diversa (ad iniziare dagli slash inversi) che sinceramente non ho ancora capito nemmeno io...e non escludo sia il problema. ho provato anche il tuo codice ma non funziona e qualsiasi cosa metto nel percorso non importa, il percorso non viene letto come "dove" salvare bensì come parte da aggiungere al nome del file (dopotutto il codice: activeworkbook.saveas filename:=directory & c & ".xls") sembra dire proprio questo, no? mi chiedo come possa funzionare ma si vede che su pc funziona! per il resto il file viene salvato sul desktop senza che nessuna variabile gli dica di salvarlo lì...boh!
    non so come fare e solo chi usa excel su mac forse potrebbe darmi una mano! grazie cmq del tuo aiuto! ciao. m



  • di Miglio (utente non iscritto) data: 02/08/2010

    Ciao marzia
    dali' editor di vba apri la finestra immediata e scrivi print thisworkbook.path il risultato dovrebbe essere il percorso con directory o cartella di dove stai lavorando, forse così ti fai un'idea di come funziona.
    altrimenti apri il registratore di macro e salvi il file dove ti interessa, chiudi il registratore e poi ti vai a vedere il codice che ha scritto, vedrai che li ti trovi il percorso corretto.

    mandi



  • di Marzia (utente non iscritto) data: 02/08/2010

    Grande mandi!! registrando una macro ho capito la sintassi di percorso su mac e ora me lo salva nel posto giusto! solo ora devo dirgli di salvarlo con il nome preso da 2 celle, più il trattino divisorio in mezzo il nome, che nell'altro codice era espresso in questo modo:

    dim c as string
    c = "" & range("c3") & "-" & range("j1").value

    di seguito invece la macro appena registata.al momento cav- era il nome del file in origine.
    grazie davvero se riesci ad aiutarmi!!!
     
    Sub percorso()
    '
    ' percorso Macro
    ' Macro registrata il 2-08-2010 da Graphic Designer
    '
    
    '
        ChDir "Marcie:DOCUMENTI:LAVORI:0RE LAVORI:"
        Range("H8").Select
        ActiveWorkbook.SaveAs Filename:="Marcie:DOCUMENTI:CAV-.xls", FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    End Sub



  • di Marzia (utente non iscritto) data: 02/08/2010

    Ce l'ho fatta!!! ora proverò tra diversi computer in rete!!! grazie mandi!!!!!
     
    Sub salva()
    Dim C As String
    C = "" & Range("C3") & "-" & Range("J1").Value
    ActiveWorkbook.SaveAs Filename:="Marcie:DOCUMENTI:" & C & ".xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub



  • di Miglio (utente non iscritto) data: 02/08/2010

    Ciao marzia
    sono felice di averti aiutato, non uso il mac ma il registratore di macro si, a volte ti aiuta a risolvere certe cose poi ci devi mettere del tuo per affinare il codice scritto.


    mandi



  • di Marzia (utente non iscritto) data: 03/08/2010

    Grazie mandi, si in effetti ho perso 2 giorni su un codice funzionante solo perchè non conoscevo la sintassi di percorso su mac e solo con il registratore (ch enon sapevo usare) l'ho scoperto. a volte si perde un'eternità per delle sciocchezze! ne approfitto per chiederti un'altra cosa se la sai. allo stesso codice che qui ti riporto avrei bisogno di aggiungere uan condizione,e cioè in base alle prime 3 lettere inziali che saranno immesse nella cella c3 (esempio cav)associare uno specifico percorso. si può fare? grazie mille! ciao. marzia
     
    Sub salva()
    Dim C As String
    C = "" & Range("C3") & "-" & Range("J1").Value
    ActiveWorkbook.SaveAs Filename:="Marcie:DOCUMENTI:" & C & ".xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub



  • di Miglio (utente non iscritto) data: 04/08/2010

    Ciao marzia
    non so se ho capito bene comunque ci provo:
    con left(range("c3",3) prendo i primi tre valori che sono contenuti nella cella c3,con il primo if faccio prendere alla variabile percorso il path da te elencato nel tuo codice se la variabile ini è uguale a cav, il secondo if, di esempio, viene ignorato perche la variabile ini non è uguale a bob.
    potresti mettere anche altri if per salvare su percorsi ancora diversi o adirittura per la scelta del percorso usare case al posto di tante ripetizioni con if end if.
    non so se il codice che ti mando funziona, non ho il mac.

    mandi
     
    Sub Salva()
    Dim Percorso As String, ini As String, C As String
    C = "" & Range("C3") & "-" & Range("J1").Value
    ini = Left(Range("C3"), 3)
    '********************
    If ini = "cav" Then
    Percorso = "Marcie:DOCUMENTI:"
    End If
    If ini = "bob" Then
    Percorso = "Percorso diverso"
    End If
    '********************
    ActiveWorkbook.SaveAs Filename:=Percorso & C & ".xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub
    



  • di Marzia (utente non iscritto) data: 05/08/2010

    Mandi, sei un angelo!!!!funziona eccome!!! -d grazieeee!!!...oh potrei avere altre imminenti richieste...posso chiederti di nuovo eventualmente? (non vorrei approfittarne troppo però ...)
    grazie ancora!!!



  • di Miglio (utente non iscritto) data: 05/08/2010

    Ciao marzia
    mi fa piacere che tutto funzioni, puoi chiedere tutto quello che vuoi, se posso e se sono in grado di sicuro ti risponderò, comunque non disperare qui ci sono tante persone in gamba che ti possono aiutare.

    mandi

    ps il mio nik è miglio, mandi è un saluto in lingua friulana che sarebbe un saluto a dio



  • di Marzia (utente non iscritto) data: 05/08/2010

    Scusaaa nik!!! è un settimana che "ti saluto in friulano", non ho parole. ti ringrazio per la tua disponibilità perchè in effetti... avrei una nuova richiesta .. ...e dopo questa spero di non stressarti più!!

    ho un elenco sempre in excel di schede lavoro che viene aggiornato di frequente inserendo nuovi item in ordine decrescente e per velocità vorrei poter disporre di pulsanti per aprire le corrispondenti schede in excel.
    quindi ogni riga lavoro è formata da più colonne con "codice lavoro" (es. pri12-10), "nome" (es. pieghevole promozione) e colonna con pulsante per aprire il file.
    ho provato a scrivere il codice vba qui sotto ma non sono in grado, quindi è incompleto ed in parte errato perchè:
    1) il range b10 dell'attuale riga (10) non va bene, perchè le righe incrementano ad ogni nuovo inserimento per cui ci vorrebbe qualcosa che gli dicesse "questa riga";
    2) il file che voglio aprire avrà un nome più lungo descrittivo (es. pri12-10-pieghevolepromozione) ma in caso di "digitazione erronea" potrebbe non corrispondere alla colonna del "nome"). quindi sarebbe utile che il file fosse riconosciuto solo dal codice che è per forza univoco, cioè i soli 8 caratteri inziali pri12-10.

    credi che si può fare? spero di essermi spiegata bene? grazie ancora nik!


     
    Sub Collegamento()
    Dim Codice As String
    Codice = Range("B10").Value
    Workbooks.Open Filename:="Marcie:DOCUMENTI:PRIBAR:" & Codice & ".xls"
    End Sub



  • di Miglio (utente non iscritto) data: 05/08/2010

    Ciao marzia

    io direi che per il primo punto si potrebbe ragionare in questo modo, con il mouse seleziona la cella b10 poi vai sul menu inserisci di excel, lo apri e selezioni nome e poi definisci.
    quella cella che riceverà un nome che definisci tu (per es. pippo)sarà battezzata con il nome "pippo",
    ed anche se inserisci righe quella è e quella rimane. il passo seguente non so se sono riuscito a capirlo ma una volta definito il nome prova il codice che scrivo quì sotto. speriamo funzioni!!

    il mio nome o nickname è miglio


    mandi
     
    Sub Collegamento()
    Dim Codice As String
    Codice = left(range("pippo"),8)
    Workbooks.Open Filename:="Marcie:DOCUMENTI:PRIBAR:" & Codice & ".xls"
    End Sub



  • di Marzia (utente non iscritto) data: 05/08/2010

    Ciao miglio!! finalmente ti chiamo con il nome giusto..(come sono fusa aiuto...).
    allora ho provato ma non funzia: mi lascia un alert:
    "errore di runtime "1004":
    metodo "range" dell'oggetto "_global" non riuscito.
    cosa significa? grazie. ciao



  • di Enzo (utente non iscritto) data: 06/08/2010

    Ciao
    usa questa istruzione ossia aggiungi .value
     
    Codice = left(range("pippo").value,8)
    



  • di Enzo (utente non iscritto) data: 06/08/2010

    Annulla tutto mi sono accorto di aver scritto una cavolata non avevo capito bene il problema visto anche l'orario



  • di Miglio (utente non iscritto) data: 06/08/2010

    Ciao marzia

    hai definito la cella che ti interessa con il nome nel modo che ti ho scritto???? quando selezioni con il mouse la cella, al posto per es. di b13 ti compare il nome che tu hai definito???
    fammi sapere

    mandi



  • di Miglio (utente non iscritto) data: 06/08/2010

    Ciao marzia

    ora ho provato a definire il nome in maniera errata e l'errore è proprio quello che tu mi hai descritto.
    riprova


    mandi



  • di Marzia (utente non iscritto) data: 06/08/2010

    Ciao miglio,
    allora sono ripartita da zero e ho eseguito come mi hai descritto, ho selezionato la cella b10, menu inserisci>nome>definisci e gli ho dato nome "code", poi ho inserito il nome code al posto di pippo nel tuo codice vba nella macro "sub collegamento" associata al pulsante.
    cliccando sul pulsante appare:
    "errore runtime 1004
    impossibile trovare "pri03-10.xls" verificare che il nome e la posizione siano corretti" questo perchè il file che deve aprire è + lungo e si chiama pri03-10-lavorox.xls, quindi manca qualcosa nel codice che gli dica di aprire il file "che inizia con" o "contiene" almeno i primi 8 caratteri. magari su questo sono stata poco chiara io, lo so. poi però c'è un'altro problema ho provato ad inserire una nuova riga e ho duplicato la riga precedente perchè contiene tutte le caratteristiche che mi occorrono e in particolar modo il pulsante. nella mia cella "code" ho incrementato il codice come se fosse un nuovo lavoro (pri04-10) ma se poi clicco questo pulsante fa riferimento sempre alla cella precedente (che ora è b11) cercandomi sempre il file "pri03-10.xls". e' come se il pulsante non sapesse di essere in quella determinata riga. in effetti è un elemento mobile, l'ho diseganto con le forme quindi credo rimanaga su un livello superiore alla griglia di celle, si può fare diversamente? oppure si può associare unamacro al click su una cella? ho già cercato ma non ho trovato la risposta. grazie mille!! ciao



  • di Marzia (utente non iscritto) data: 06/08/2010

    ...ringrazio anche enzo per il tentativo notturno, capisco che dopo una certa ora a lavorare sui codici non sia la cosa migliore!!



  • di Marzia (utente non iscritto) data: 06/08/2010

    Ciao miglio,
    intanto io visto un tuo post ch enon avevo letto, ovvero
    ------
    ciao marzia

    hai definito la cella che ti interessa con il nome nel modo che ti ho scritto???? quando selezioni con il mouse la cella, al posto per es. di b13 ti compare il nome che tu hai definito???
    fammi sapere

    mandi
    --------

    no, in quella cella c'è il codice lavoro......boh ...confusa....



  • di Miglio (utente non iscritto) data: 06/08/2010

    Ciao marzia
    sto cercando di mandarti un codice ma il sito me lo taglia metà
    piu tardi ci riprovo


    mandi



  • di Marzia (utente non iscritto) data: 06/08/2010

    Te lo taglia in anteprima? a me lo fa sempre ma poi lo pubblica intero. ciao



  • di Miglio (utente non iscritto) data: 06/08/2010

    Non credo di aver capito ancora, comunque questo codice (spero pubblicato per intero) potrebbe essere uno spunto. si apre una finestra di dialogo che va a listarti i file di excel in un determinato percorso e che hanno il nome file che inizia come scritto in cella a1.
    e' chiaro che dovrai cambiare la cella di riferimento a1 secondo le tue esigenze e sostituire f: con il percorso per mac.
    prova

    mandi
     
    Sub apri()
    NomeFile = Range("A1")
    Application.Dialogs(xlDialogOpen).Show ("F:" & NomeFile & "*")
    End Sub



  • di Marzia (utente non iscritto) data: 07/08/2010

    Ciao miglio, ti avevo scritto un messaggio ma non me l'ha pubblicato, riprovo copiando negli appunti alla fine così nel caso non funzioni ho il test salvato...
    allora dicevo, l'ultimo codice apre la finestra di dialogo "apri" in un punto qualsiasi sul disco quindi non va bene. ho pensato, tardi,di caricarti l'esempio excel via ftp così almeno vedi cosa intendo fare, visto che le mie descrizioni non saranno proprio accurate.
    prova:
    (www.magadesign.co.uk/esempioprogressxmiglio.xls)
    (don't worry, no viruses on mac).
    prova a cliccare sul bottone nuova riga lavoro che aggiunge una nuova riga sopra semi compilata. il bottone apri dovrebbe aprire la scheda lavoro riferita al codice lavoro incrementato di uno (a 03-10 segue 04-10 )rispetto al precedente e così per tutti quelli che verranno. spero ora sia più chiaro. grazie mille!! marzia



  • di Miglio (utente non iscritto) data: 07/08/2010

    Ok marzia
    in pratica tu vorresti aprire il file con nome posto nella colonna b e riga riferita al pulsante ??
    se è cosi ho fatto delle modifiche al file che non so se sono di tuo gradimento, la prima è quella di usare un pulsante unico per aprire i file, la seconda è che prima di schiacciare il pulsante devi clickare sulla cella o sulla riga del file che vuoi aprire in modo di avere un riferimento certo, la terza è un piccolo controllo su errori che si possono fare clickando fuori area.

    come ti posso inviare il file modificato ???

    complimenti per il sito, immagino sia il tuo lavoro.


    mandi



  • di Marzia (utente non iscritto) data: 09/08/2010

    Grande miglio, credo che vada bene, basta che funzioni in maniera pratica e poi va più che bene. puoi inviarmelo per email a marzia@ + il mio dominio. poi ti so dire. grazie come sempre!! marzia
    ps: grazie x il sito, si è il mio lavoro...ciao