Sviluppare funzionalita su Microsoft Office con VBA sincronizzare tra file excel nel pc e sito

Login Registrati
Stai vedendo 25 articoli - dal 51 a 75 (di 78 totali)
  • Autore
    Articoli
  • #13487 Score: 0 | Risposta

    vecchio frac
    Senior Moderator
      272 pts

      dariotoby ha scritto:

      tramite macro è possibile trasferire ed fare l'update delle tabelle in phpmyadminy nel database del sito dal file excel? 

      Anzitutto un po' di chiarezza, phpMyAdmin è un'applicazione web scritta in PHP, che consente di amministrare un database MySQL. Googlando mi par di capire che ce la fa a importarsi le tabelle direttamente da un file Excel (ha un menu chiamato Import). Da quel che leggo ha delle limitazioni sul numero di righe importabili. Comunque sempre con Google ci sono svariate possibilità di trasformare tabelle Excel in MySQL.

      dariotoby ha scritto:

      se fosse possibile riportare i colori

      Bè questo puoi farcela da solo. Devi colorare la cella definita in .Cells(r, "A") col Font.Color desiderato.

      dariotoby ha scritto:

      dire alla macro di iniziare a scrivere al primo rigo libero della colonna A

      Anche a far questo puoi farcela. Devi solo calcolare la prima cella libera della colonna A. Esiste una funzione, Worksheetfunction.CountA, cui passare il range della colonna A, e ti restituisce il numero di righe piene; basta fare +1 e hai la prima riga libera. Ricordati di togliere la riga che dice ".ClearContents" altrimenti ti cancella tutto e addio storico 🙂

      dariotoby ha scritto:

      Modifico Range A1 in B1 e Range B:B in C:C e Cells r, "A" in Cells r, "B" va bene?

      direi che va bene ma... hai provato? salva tutto, fai una copia e prova! 😀

      #13492 Score: 0 | Risposta

      dariotoby
      Partecipante

        vecchio frac ha scritto:

        Bè questo puoi farcela da solo. Devi colorare la cella definita in .Cells(r, "A") col Font.Color desiderato.

        ma questo è fatto ma non riporta i colori della cella.

        Oppure ho capito male io, attualmente le colonne dove ci sono ni link sono colorati diversi uno blu ed uno rosso, questo dati quando vanno nel foglio Per gli spedizionieri vanno solo i dati e non le impostazioni della cella è cioè il font colorato.

        Oppure dici di inserire nel codice che la cella si deve colorare? Questo non lo so fare. Ho trovato questo ActiveCell.Font.ColorIndex = 3 ‘<<<<rosso ma non so come inserirlo nel codice. Scusa per gli altri vedo poi come fare.

         

        Oppure faccio a mano che ricopio solo la formattazione alle celle col trascinamento e basta e rimane così

         

        #13493 Score: 0 | Risposta

        dariotoby
        Partecipante

          Ho notato che la data me la scrive solo il primo giorno con questo codice

          s = "Giorno " & Format(.Range("F2"), "dd mmmm yyyy")

          ma poi quando cambia data non me lo scrive più il codice sopra indicato la macro rimane sempre nel ciclo For Each fino alla fine dei righi.

          #13501 Score: 0 | Risposta

          dariotoby
          Partecipante

            scusa nella macro come mai mi salva il file csv con l'estensione in maiuscolo? .CSV in pratica sul server ci va ma non mi modifica quello che c'è. Cosa bisogna cambiare?

            #13508 Score: 0 | Risposta

            dariotoby
            Partecipante

              Ciao Vecchiofrac ti sto facendo tante domande per problemi che vado notando man mano che utilizzo

              Quando ti dissi di spostare nelle colonna B la scrittura della macro era perchè cosi nelle colonna A mettessi la data al rigo corrispettivo quando mi cambiava la data.

              Ma noto che questo codice in basso mi cancella anche la colonna A io invece pensavo che mi cancellasse solo la colonna B e poi la riscrivesse proseguendo il codice e cosi la data che io avevo messo nella colonna A mi rimaneva.

              Sheets("Per gli spedizionieri").Range("B1").CurrentRegion.ClearContents
              #13510 Score: 0 | Risposta

              dariotoby
              Partecipante

                scusa la macro creaBat mi da errore run time 52 in questo codice non ho capito ancora perchè avvolte mi da questo errore ed avvolte no, non ho capito quando. Sto facendo delle prove quando mi funziona da cosa dipende. Ancora non ho capito.

                Open f For Binary As #1

                Non ci sto capendo certe volte mi da questo errore ora faccio delle prove e non me lo da.

                Boooo

                #13519 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  dariotoby ha scritto:

                  dici di inserire nel codice che la cella si deve colorare?

                  Certamente, e ti ho già mostrato come si fa più sopra. Io utilizzerei Font.Color, più preciso:

                                  With Sheets("Per gli spedizionieri")
                                      s = c & " - " & c.Offset(, 5) & " - " & c.Offset(, 2)
                                      .Cells(r, "A") = s
                                      r = r + 1
                                      .Cells(r, "A") = c.Offset(, 6)
                                      .Cells(r, "A").Font.Color = 12874308 'azzurrino
                                      r = r + 1
                                      .Cells(r, "A") = c.Offset(, 7)
                                      .Cells(r, "A").Font.Color = 3243501   'orange
                                      r = r + 1
                                  End With
                  
                  #13520 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Il problema della data non l'ho ben compreso, ma è giusta la tua interpretazione, la data viene inserita solo a inizio ciclo. Chiaro che comunque on devi cancellare il contenuto della colonna A ma ripartire dall'ultima riga valorizzata:

                    Sub per_spedizionieri()
                    Dim s As String
                    Dim c As Range
                    Dim r As Long
                    
                        r = WorksheetFunction.CountA(Range("A:A")) + 1
                        With Sheets("Tabella News")
                        
                            s = "Giorno " & Format(.Range("F2"), "dd mmmm yyyy")
                            Sheets("Per gli spedizionieri").Range("A1") = s

                     

                    #13521 Score: 0 | Risposta

                    vecchio frac
                    Senior Moderator
                      272 pts

                      dariotoby ha scritto:

                      l'estensione in maiuscolo? .CSV

                      Non dovrebbe, visto che il codice prevede l'estensione in minuscolo, e comunque è ininfluente:

                      With ActiveSheet.Copy
                               ActiveSheet.SaveAs Filename:=percorso & nome & ".csv", _
                      #13522 Score: 0 | Risposta

                      dariotoby
                      Partecipante

                        vecchio frac ha scritto:

                        dariotoby ha scritto:

                        dici di inserire nel codice che la cella si deve colorare?

                        Perdonami tu l'hai detto ma non sapevo come inserire il codice ho fatto delle ricerchè via google

                        #13523 Score: 0 | Risposta

                        vecchio frac
                        Senior Moderator
                          272 pts

                          dariotoby ha scritto:

                          questo codice in basso mi cancella anche la colonna A

                          Eh sì, CurrentRegion tiene conto di tutte le celle contigue. Problema facilmente risolvibile comunque visto che devi eliminare la riga di codice dato che non devi cancellare il contenuto precedente.

                           

                          #13524 Score: 0 | Risposta

                          vecchio frac
                          Senior Moderator
                            272 pts

                            dariotoby ha scritto:

                            certe volte mi da questo errore

                            Potrebbe dipendere dal numero # che è il canale da aprire per la lettura/scrittura dl file.

                            In casi come questo si ricorre a FreeFile:

                            Sub CreaBAT(ByVal m As String)
                            Dim f As Variant, sBat As Variant, s As String
                            dim fi as long
                            
                                f = ThisWorkbook.Path & "\test.bat"
                                fi = FreeFile
                                Open f For Binary As #fi
                            .
                            .
                            . 
                                Close #fi
                            End Sub
                            
                            #13528 Score: 0 | Risposta

                            dariotoby
                            Partecipante

                              Ho fatto le modifiche intanto ti mando il file con le modifiche fatte, in merito alla data mi spiego meglio,

                              e se vedi la tabella ti rendi conto quando cambia la data non mi scrive Giorno 02 ecc. o nel rigo sopra l'inizio del giorno o mi basta che il giorno venga scritto nella colonna A ed gli altri righi nella colonna B, il mio intento è poter capire quando iniziano i brani del 1 ed i brani del 2 ecc.

                              Per il discorso del .CSV maiuscolo lo so che non è influente ma il fatto che nel server è con .csv miniscuolo e mi ha scritto un altro e che quindi non mi si aggiornava.

                              Allegati:
                              You must be logged in to view attached files.
                              #13530 Score: 0 | Risposta

                              vecchio frac
                              Senior Moderator
                                272 pts

                                Ok allora giorno in colonna A, resto delle informazioni in colonna B. Poichè le righe compilate sono in colonna B, è sulla base di questa che devi fare il conteggio righe per sapere qual è la successiva a cui accodare nuove informazioni.

                                Option Explicit
                                
                                Sub per_spedizionieri()
                                Dim s As String
                                Dim c As Range
                                Dim r As Long
                                
                                    r = WorksheetFunction.CountA(Range("B:B")) + 1
                                    With Sheets("Tabella News")
                                    
                                        s = "Giorno " & Format(.Range("F2"), "dd mmmm yyyy")
                                        Sheets("Per gli spedizionieri").Range("A1") = s
                                        
                                        For Each c In .Range("B:B")
                                            If Trim(c) = "" Then Exit For
                                            
                                            If c.Row > 1 Then
                                                With Sheets("Per gli spedizionieri")
                                                    s = c & " - " & c.Offset(, 5) & " - " & c.Offset(, 2)
                                                    .Cells(r, "B") = s
                                                    r = r + 1
                                                    .Cells(r, "B") = c.Offset(, 7)
                                                    .Cells(r, "B").Font.Color = 3243501   'orange
                                                    r = r + 1
                                                    .Cells(r, "B") = c.Offset(, 6)
                                                    .Cells(r, "B").Font.Color = 12874308 'azzurrino
                                                    r = r + 1
                                                End With
                                                    
                                            End If
                                        Next
                                    
                                    End With
                                    MsgBox "Finito", , "Per gli spedizionieri"
                                End Sub

                                Questa cosa del csv minuscolo o maiuscolo ancora non ho capito bene che differenza fa. Cos'è che non si aggiorna?

                                #13531 Score: 0 | Risposta

                                dariotoby
                                Partecipante

                                  vecchio frac ha scritto:

                                  Questa cosa del csv minuscolo o maiuscolo ancora non ho capito bene che differenza fa. Cos'è che non si aggiorna?

                                  ti allego lo screenshot del server e come vedi ci sono due file uguali uno con csv minuscolo e l'altro CSV maiuscolo e purtroppo nel server sono come due file diversi, quando il plug in l'altro screesnhot fa l'auto aggiornamento dal file della tabella siccome avevo messo il nome con csv minuscolo non me l'aggiornava e quindi non vedevo gli aggiornamenti nella tabella.

                                  Allegati:
                                  You must be logged in to view attached files.
                                  #13534 Score: 0 | Risposta

                                  dariotoby
                                  Partecipante

                                    vecchio frac ha scritto:

                                    Ok allora giorno in colonna A, resto delle informazioni in colonna B. Poichè le righe compilate sono in colonna B, è sulla base di questa che devi fare il conteggio righe per sapere qual è la successiva a cui accodare nuove informazioni.

                                    Non funziona, se la provi come mai mi conincia dal rigo 27 a scrivere? Non scrive giorno 2 e 3

                                    #13541 Score: 0 | Risposta

                                    vecchio frac
                                    Senior Moderator
                                      272 pts

                                      Ah caspita, finalmente ho capito cosa vuoi fare, devi raggruppare per data 🙂

                                      Bisognerà implementare un autofilter allora 😛

                                      Sul file csv con l'estensione in maiuscolo, è strano perchè il codice prevede l'estensione in minuscolo. Non ho idea di quale punto critico si possa trattare.

                                      #13542 Score: 0 | Risposta

                                      vecchio frac
                                      Senior Moderator
                                        272 pts

                                        Ecco il codice che sostituisce il precedente.

                                        Option Explicit
                                        
                                        Sub per_spedizionieri()
                                        Dim s As String
                                        Dim c As Range
                                        Dim r As Long
                                        Dim v As Variant, d As Variant
                                        
                                            'recupera i valori non duplicati della colonna Data
                                            With Worksheets("Tabella News")
                                                .AutoFilterMode = False
                                                .Range("F:F").Copy .Range("AA1")
                                                .Range("AA:AA").RemoveDuplicates Columns:=Array(1), Header:=xlYes
                                                .Range("AA1").Clear
                                                v = Application.Transpose(.Range("AA2").CurrentRegion)
                                                .Range("AA:AA").Clear
                                                
                                                r = WorksheetFunction.CountA(Worksheets("Per gli spedizionieri").Range("AA:AA")) + 1
                                                Worksheets("Per gli spedizionieri").Range("A:B").Clear
                                                
                                                For Each d In v
                                                    .AutoFilterMode = False
                                                    Application.CutCopyMode = False
                                                    .Range("A1").CurrentRegion.AutoFilter field:=6, Criteria1:=Format(d, "dd/mm/yyyy")
                                                    .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
                                                    With Worksheets("Per gli spedizionieri")
                                                        .Paste .Range("AA1")
                                                        .Cells(r, "A") = "Giorno " & Format(d, "dd mmmm yyyy")
                                                        For Each c In .Range("AB:AB")
                                                            If Trim(c) = "" Then Exit For
                                                            
                                                            If c.Row > 1 Then
                                                                s = c & " - " & c.Offset(, 5) & " - " & c.Offset(, 2)
                                                                .Cells(r, "B") = s
                                                                .Cells(r, "B").Font.Color = vbBlack
                                                                r = r + 1
                                                                .Cells(r, "B") = c.Offset(, 7)
                                                                .Cells(r, "B").Font.Color = 3243501   'orange
                                                                r = r + 1
                                                                .Cells(r, "B") = c.Offset(, 6)
                                                                .Cells(r, "B").Font.Color = 12874308 'azzurrino
                                                                r = r + 1
                                                            End If
                                                        Next
                                                        .Range("AA1").CurrentRegion.Clear
                                                    End With
                                                Next
                                                Worksheets("Per gli spedizionieri").Range("AA1").CurrentRegion.Clear
                                                .AutoFilterMode = False
                                            End With
                                            MsgBox "Finito", , "Per gli spedizionieri"
                                        End Sub
                                        
                                        
                                        
                                        #13543 Score: 0 | Risposta

                                        dariotoby
                                        Partecipante

                                          Funziona perfetto sei stato grande.

                                          #14598 Score: 0 | Risposta

                                          dariotoby
                                          Partecipante

                                            Scusa ti chiedo nuovamente aiuto non capisco il perchè non mi funziona più questa macro per gli spedizionieri.

                                            Mi da errore 13 tipo non corrispondente in questo rigo For Each d In v

                                            Fino ad ieri ha funzionato tutto. Non ci sto capendo grazie

                                            Option Explicit
                                            
                                            Sub per_spedizionieri()
                                            Dim s As String
                                            Dim c As Range
                                            Dim r As Long
                                            Dim v As Variant, d As Variant
                                            
                                                'recupera i valori non duplicati della colonna Data
                                                With Worksheets("Tabella News")
                                                    .AutoFilterMode = False
                                                    .Range("F:F").Copy .Range("AA1")
                                                    .Range("AA:AA").RemoveDuplicates Columns:=Array(1), Header:=xlYes
                                                    .Range("AA1").Clear
                                                    v = Application.Transpose(.Range("AA2").CurrentRegion)
                                                    .Range("AA:AA").Clear
                                                    
                                                    r = WorksheetFunction.CountA(Worksheets("Per gli spedizionieri").Range("AA:AA")) + 1
                                                    Worksheets("Per gli spedizionieri").Range("A:B").Clear
                                                    
                                                    For Each d In v
                                                        .AutoFilterMode = False
                                                        Application.CutCopyMode = False
                                                        .Range("A1").CurrentRegion.AutoFilter field:=6, Criteria1:=Format(d, "dd/mm/yyyy")
                                                        .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
                                                        With Worksheets("Per gli spedizionieri")
                                                            .Paste .Range("AA1")
                                                            .Cells(r, "A") = "Giorno " & Format(d, "dd mmmm yyyy")
                                                            For Each c In .Range("AB:AB")
                                                                If Trim(c) = "" Then Exit For
                                                                
                                                                If c.Row > 1 Then
                                                                    s = c & " - " & c.Offset(, 5) & " - " & c.Offset(, 2)
                                                                    .Cells(r, "B") = s
                                                                    .Cells(r, "B").Font.Color = vbBlack
                                                                    r = r + 1
                                                                    .Cells(r, "B") = c.Offset(, 7)
                                                                    .Cells(r, "B").Font.Color = 3243501   'orange
                                                                    r = r + 1
                                                                    .Cells(r, "B") = c.Offset(, 6)
                                                                    .Cells(r, "B").Font.Color = 12874308 'azzurrino
                                                                    r = r + 1
                                                                End If
                                                            Next
                                                            .Range("AA1").CurrentRegion.Clear
                                                        End With
                                                    Next
                                                    Worksheets("Per gli spedizionieri").Range("AA1").CurrentRegion.Clear
                                                    .AutoFilterMode = False
                                                End With
                                                MsgBox "Finito", , "Per gli spedizionieri"
                                            End Sub
                                            

                                             

                                            Allegati:
                                            You must be logged in to view attached files.
                                            #14609 Score: 0 | Risposta

                                            vecchio frac
                                            Senior Moderator
                                              272 pts

                                              Appena riesco ci guardo... bisogna vedere che cosa è finito in "v". Potresti impostare un breakpoint al momento dell'assegnazione a "v" e quindi interrogare la variabile in Immediata (anche solo un semplice Select) per vedere cosa è successo.

                                              #14615 Score: 0 | Risposta

                                              dariotoby
                                              Partecipante

                                                grazie non so come si fa? Se me lo spieghi grazie

                                                #14672 Score: 0 | Risposta

                                                dariotoby
                                                Partecipante

                                                  vecchio frac ha scritto:

                                                  Appena riesco ci guardo... bisogna vedere che cosa è finito in "v". Potresti impostare un breakpoint al momento dell'assegnazione a "v" e quindi interrogare la variabile in Immediata (anche solo un semplice Select) per vedere cosa è successo.

                                                  Ciao vecchio frac per caso hai avuto modo di dargli un occhiata? Grazie sempre

                                                  #14682 Score: 0 | Risposta

                                                  vecchio frac
                                                  Senior Moderator
                                                    272 pts

                                                    No, mi dispiace. Queste sono giornate  pesanti e quando arrivo a casa la sera ho gli occhi che si incrociano... ma vedrò di fare quello che posso 🙂

                                                    #14686 Score: 0 | Risposta

                                                    dariotoby
                                                    Partecipante

                                                      allora tranquillo non ti preoccupare so attendere

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 51 a 75 (di 78 totali)
                                                    Rispondi a: sincronizzare tra file excel nel pc e sito
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: