Sviluppare funzionalita su Microsoft Office con VBA problemi a creare un nuovo file con macro

Login Registrati
Stai vedendo 18 articoli - dal 1 a 18 (di 18 totali)
  • Autore
    Articoli
  • #1091 Score: 0 | Risposta
    #1093 Score: 0 | Risposta
    devo creare nuovi file con formato diverso tramite macro, con dati importati da altri file di excel tramite macro.
    ilproblema e che quando una cella contiene troppi caratteri fa in modo che la macro non funzioni.
    (almeno mi sembra sia qui il problema
    nello specifico
    tramite macro in una altra cartella concateno delle celle incolonnate e lemetto tutte su una cella,
    a occhio i caratteri saranno 1000 possono essere anche piu o anche meno,di qui sempre tramite macrovengono copiati su una cartella di excell in una cella di qui insieme ad alre celle incolonnate vanno copiati su un file che viene appositamente creato da una macro ed ha estensione .kml
    se la cella che contiene i numeri e corta funziona se invecie e lunga non funziona piu forse la macro che mi hanno insegnato non sopporta un certo num di caratteri ,non lo so provo ad allegare i file e mettere i codici spero in un aiuto
    ho provato a cancellare parte dei valori in c 17 e funziona di qui il dubbio.
    comunque da xxm vanno su ftest e di qui dovrebbero andare su un file che viene creato
    Allegati:
    You must be logged in to view attached files.
    #1096 Score: 0 | Risposta
    scusate la fretta mi ha fatto dimenticare  il buona sera e il grazie , che non fanno mai male
    #1111 Score: 0 | Risposta

    albatros54
    Moderatore
      89 pts
      ciao i.k.o
      a parte il fatto che non ho capito bene qual'è il problema(dati introdotti in cella troppo lunghi?), ho scaricato i file che tu hai postato, ma le macro si bloccano perchè cercano un file rotte.xlx che non trovano.
      Ma perchè hai la necessita di mettere tutti quei dati in una cella?
      ciao
      albatros54
      #1112 Score: 0 | Risposta
      sicuro? che occhio vado subito a vedere.... la macro in questione e denominata crea sul file ftest le altre vanno bene a meno che non
      diano dati sbagliati al file ftest
      mi servono perche  devo creare dei file kml che vadano su ge
      ciao e grazie della dritta non vedo dove lo stiano cercando forse ti ho mandato file sbagliati...ora controllo
      #1116 Score: 0 | Risposta

      albatros54
      Moderatore
        89 pts
        prova ad inserire questa macro, che si trova in un modulo del file Ftest.xlxm, in un modulo del file xxm.xlxm e la lanci, ti crea il file KML.
        Sub CREAKML()
        Dim PercorsoFile As String
        Dim NomeFile As String
        PercorsoFile = "F:\KMZ\GEP\"
        NomeFile = PercorsoFile & Range("A1").Value & ".KML"
        LR = Cells(Rows.Count, "b").End(xlUp).Row
        sn = ActiveSheet.Range("B1:B" & LR)
        For j = 1 To UBound(sn)
        c00 = c00 & Join(Application.Index(sn, j, 0), ",") & vbCrLf
        Next
        CreateObject("scripting.filesystemobject").createtextfile(NomeFile).write c00
         
        End Sub
        se lanci la macro dal file xxm.xlxm la variabile sn non viene inizializzata, perche il foglio attivo,in questo casa sheet1 nella colonna "B" non contiene dati,.
        ciao
        albatros54
        #1118 Score: 0 | Risposta
        si ora ho visto, no c'entra nulla quella stringa, mi sono dimenticato di dire , il file xxm l'ho messo perche e in relazione al file ftest per mezzodella cella g1 che va copiata nel file ftest , che e quello che ha il vero problema nella macro "crea"
        un altro motivo per il quale l'ho messo e per confrontare la macro "crea" con la macro "salvacsv" che di fatto sono identiche
        ma creano duefile diversi. un altro fatto che ho notato e mi fa venire altri dubbi e che la seconda (salvacsv) pur essendo identica non ha preoblemi . sta di fatto che comunque entrambe lavorando allo stesso modo creano file testo( almenomi pare di capire)
        e poi li slvano in formato differente. non so ......
        #1120 Score: 0 | Risposta
        se lanci la macro dal file xxm.xlxm la variabile sn non viene inizializzata, perche il foglio attivo,in questo casa sheet1 nella colonna “B” non contiene dati,.
        infatti, a parte che io nella mia somaraggine mai ci sarei arrivato, ma in realta la macro crea che e identica a quella che hai postato tu
        risiede in ftest ed essendo lanciata dal medesimo considera attivo sn quindi c'e inizializzazione almeno credo....
        ora mi sa che il problema e grosso 😕
        #1121 Score: 0 | Risposta

        albatros54
        Moderatore
          89 pts
          Allora, la macro salvacsv va bene , perche lavora su di unfoglio attivo che contiene dei dati nella colonna B, quindi inizializzala varibile sn, quando lanci la macro dal foglio FTEST,  è attivo lo sheet1 di questo file, e la riga di codice
          sn = ActiveSheet.Range("B1:B" & LR)
          non viene inizializzata, perchè non contiene dati.
          #1122 Score: 0 | Risposta
          aspetta , vado con calma. la macro puo essere lanciata  da qualsiasi, non mi importa. forse hai capito male perche ho fatto un mucchio di prove e ho lasciato in disoordine il tutto. mi ripeto meglio, la macro deve prendere i dati dal file ftest
          che sono quelle stringhe testo, nella colonna c solo le celle c5,c9,c13 e quella che da problemi ricevono dati dalla macro "importadati"
          del file xxm dalle celle d1,e g1
          #1125 Score: 0 | Risposta
          se lanci la macro dal file xxm.xlxm la variabile sn non viene inizializzata, perche il foglio attivo,in questo casa sheet1 nella colonna “B” non contiene dati,.
          mi sa che non capisco
          se il foglio fstest contiene la macro crea  che adopero solo dopo aver attivato il foglio manualmente  perche secondo te considera attivo il foglio xxm?
          sono io che attivo i fogli a mano e una volta attivi pigio per far partire le macro
          comunque non impazzire,
          prova cio che ho provato io e vedi se ti da problema
          creati una cartellina dove posizionare i kml
          prova a mettere in c17 di ftest 3 coppie di coord(sono divise da spazi)(80.449722,47.931111 81.257778,47.373889 81.657222,47.091667) lancia la macro "crea " e vedi se va ti crea il file(se sei curioso lo trascini in ge e vedi nel globo cosa succede) poi fai la prova con una 20 di coppie le puoi creare dal file xxm o ricopiarle a mano duplicando quelle in g1
          e vedi che la "creakml" non va piu.
          #1127 Score: 0 | Risposta
          ok ho visto con sicurezza dove e il problema ma non riesco a risolverlo,
          il problema e proprio nel numero di caratteri presenti nella cella,
          se ci sono piu di 10 righe copiate dentro non va con meno si e non so il perche........
          ora provo a cancellare carattere per carattere a vedere il num giusto.
          dopo non so....
          #1132 Score: 0 | Risposta

          i.k.o
            ho trovato il problema (forse ) sta proprio nella quantita di caratteri che accetta una colonna 255, al 256° non funziona piu la macro
            mi ricordo che ho letto da qualche parte che modificando le variabili da long a long long si puo aumentare o mi sbaglio?
            #1134 Score: 0 | Risposta

            albatros54
            Moderatore
              89 pts
              prova questa macro, dovrebbe andare bene con qualsiasi lunghezza di caratteri
              Sub CREAKML()
              Dim PercorsoFile As String
              Dim NomeFile As String
              PercorsoFile = "F:\KMZ\GEP\"
              NomeFile = PercorsoFile & Range("A1").Value & ".KML"
              With Sheets("sheet1")
              lr = .Cells(Rows.Count, "c").End(xlUp).Row
              sn = .Range("c1:c" & lr)
              For j = 1 To lr
              c00 = c00 & .Cells(j, 3) & vbCrLf 'Application.Index(sn, j, 0)
              Next
              End With
              MsgBox c00
              CreateObject("scripting.filesystemobject").createtextfile(NomeFile).write c00
               
              End Sub
              • Questa risposta è stata modificata 8 anni, 5 mesi fa da  albatros54.
              #1136 Score: 0 | Risposta
              si funziona benissimo speriamo anche con quelli piu grandi, una precisazione , siccome non so quanto possono essere grandi , lo spazio che riceve le coordinate si muove di conseguenza al loro numero? quinndi le celle vanno giu a scalare?
              potresti mica spiegarmi questo comando? l'altro l'avevo capito con questo da solo ci metto un mese a capirlo ,.Cells(j, 3) & vbCrLf  vuol dire che  prende le celle a gruppi di 3 e poi va a capo finche non finiscono?
              grazzie!!!
              • Questa risposta è stata modificata 8 anni, 5 mesi fa da  i.k.o.
              #1140 Score: 0 | Risposta

              albatros54
              Moderatore
                89 pts
                quinndi le celle vanno giu a scalare?
                potresti mica spiegarmi questo comando?
                Tu non ti devi preoccupare del numero di celle che il file occupa perchè questa riga di codice
                lr = .Cells(Rows.Count, "c").End(xlUp).Row
                dice ad excel
                "portati sull'ultima cella in basso della colonna "C"(nel nostro caso)End, e salendo verso l'alto(xlUp)
                trovami la prima cella che contiene un dato, e assegna alla variabile lr il valore della riga."
                In altri termini controlla  tutte  le celle della colonna "C" che contengono un valore è mi ritorna il numero di riga dell'ultima cella che contiene un dato
                ,.Cells(j, 3) & vbCrLf vuol dire che prende le celle a gruppi di 3 e poi va a capo finche non finiscono?
                No! quel 3 indica la colonna"C", che io ho modificato, perche nella tua macro facevi riferimento alla colonna "B", che non contenava nessun dato
                • Questa risposta è stata modificata 8 anni, 5 mesi fa da  albatros54.
                • Questa risposta è stata modificata 8 anni, 5 mesi fa da  albatros54.
                #1149 Score: 0 | Risposta
                be allora non avevo capito nemmeno quella di prima, avevo solo dato una mia interpretazione.
                in queta riga:Application.Index(sn, j, 0)
                lo zero cosa sata a indicare?
                ti chiedo scusa ma e che vorrei imparare un pochino  e capire cio che succede in una  formula
                ho comunque scaricato qualche file da studiarmi cosi disturbero un po meno,...
                grazie ancora
                metto risolto, poi magari la domande continuo a farle ,per le risposte decidete voi... 😛
                non so come si mette pero
                #1150 Score: 0 | Risposta

                albatros54
                Moderatore
                  89 pts
                  metto risolto, poi magari la domande continuo a farle ,per le risposte decidete voi…
                  non so come si mette pero
                  è una funzione ancora da implementare 😛  😛
                  • Questa risposta è stata modificata 8 anni, 5 mesi fa da  albatros54.
                Login Registrati
                Stai vedendo 18 articoli - dal 1 a 18 (di 18 totali)
                Rispondi a: problemi a creare un nuovo file con macro
                Gli allegati sono permessi solo ad utenti REGISTRATI
                Le tue informazioni: