Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

importazione contatti su gmail

Ultimo Aggiornamento: 10/02/2014 13:39
Post: 15
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 10:25

Buongiorno, per esigenze di lavoro ho dovuto adattare un file excel, usato in azienda per riportare tutti i numeri di cellulare dei dipendenti, ottimizzato per salvarlo nel formato csv e importarlo successivamente in gmail.

Il file, che vi linko, funziona.
link: https://www.dropbox.com/s/sffhboizqh3lbmr/gmail_contatti.xlsx

Una cosa però andrebbe risolta.
Quando importo il file csv in gmail mi crea una serie di contatti con nessun dato interno.
Credo sia dovuto al fatto che nel file .xlsx nelle colonne:
-C "Phone 1 - Type"
-E "Phone 2 - Type"
-G "Phone 3 - Type"
-I "Phone 4 - Type"
-K "Phone 5 - Type"
Ho messo la formula =SE($A2<>0;"Mobile";""), cioè in pratica mi inserisce la stringa "Mobile" solo se nella cella $A2, "Given Name" c'è qualcosa.

Se potete aiutarmi a creare una macro che, prima di salvare il file nel formato .csv faccia un po' di pulizia, eliminando tutte le righe inutili, vale a dire quelle dove non c'è alcun valore nella cella $A2.

L'ideale per me sarebbe associare la macro ad un pulsante e la procedura avvenga in automatico.

Grazie

P.S.
Sull'argomento stranamente ho trovato poco in rete. [SM=g27833]
Post: 1.940
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Veteran
2010
OFFLINE
09/02/2014 10:33

nel tuo esempio non ci sono righe inutili, prima di salvare in csv seleziona l'area occupata, Copia, incolla speciale, valori
[Modificato da patel45 09/02/2014 10:37]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 16
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 10:45

Anch'io avevo visto che il file csv generato non aveva altre righe, però stranamente importando il file su gmail mi crea contatti vuoti.

patel45, 2/9/2014 10:33 AM:

nel tuo esempio non ci sono righe inutili, prima di salvare in csv seleziona l'area occupata, Copia, incolla speciale, valori



Volendo automatizzare la procedura con una macro, che faccia:
1. Copia, incolla speciale, valori delle righe con dati utili
2. generazione del file .csv

Come posso fare?
Grazie
Post: 1.942
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Veteran
2010
OFFLINE
09/02/2014 12:30

funziona come ti ho indicato ? altrimenti è inutile pensare ad una macro

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 17
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 13:19

Ho usato il codice seguente per risolvere quanto da me richiesto, però non mi funziona la macro per l'esportazione del foglio in csv.

Posto sotto le varie macro:
---
eliminare righe vuote
Sub eliminarighevuote()
Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

---
tutto maiusolo
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then
Exit Sub
Else
Target.Value = UCase(Target.Value) 'tutto maiuscolo
'Target.Value = LCase(Target.Value) 'tutto minuscolo
'Target.Value = Application.WorksheetFunction.Proper(Target.Value) 'iniziale maiuscola
End If
End Sub

---
esportare in csv
Sub crea_csv()
    Dim MyDir As String, NomeFile As String
    Dim FileExist As Boolean, ws As Worksheet
    Application.ScreenUpdating = False

    MyDir = ThisWorkbook.Path
    NomeFile = ActiveSheet.Name
    

    If Dir(MyDir & "" & NomeFile & ".csv") <> "" Then
        Select Case MsgBox("Attenzione: esiste già un file con questo nome." _
                           & vbCrLf & "Vuoi sovrascrivere il file?" _
                           , vbYesNo Or vbExclamation Or vbDefaultButton1, "Duplicato")
        Case vbNo
            Exit Sub
        End Select
    End If
    
    Application.DisplayAlerts = False
    
    'Sheets(NomeFile).Copy
    'With ActiveWorkbook
    '    .SaveAs Filename:=MyDir & "" & NomeFile & ".csv", FileFormat:=xlCSV
    '    .Close savechanges:=False
    'End With


   For Each ws In ThisWorkbook.Worksheets
       ws.Copy 'creates a new workbook
       With ActiveWorkbook
     '       .SaveAs "C:\temp\" & ws.Name & "_blah.csv", xlCSV
             .SaveAs Filename:=MyDir & "" & NomeFile & ".csv", FileFormat:=xlCSV
             .Close savechanges:=False
     '       .Close False
       End With
   Next ws

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "Foglio .csv creato con successo"
End Sub

---

Le prime 2 funzionano, mentre l'ultima NO.

Questo è il file
link:
https://www.dropbox.com/s/cel42c7mygj9mk4/gmail_contatti.xlsm

Ciao e grazie
Post: 19
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 15:15

Facendo il debug del codice della 3 macro sembra andare in errore quando arriva a questa riga:

If Dir(MyDir & "" & NomeFile & ".csv") <> "" Then

Come mai?
Post: 1.946
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Veteran
2010
OFFLINE
09/02/2014 15:51

non hai risposto alla mia domanda

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 20
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 16:59

patel45, 2/9/2014 3:51 PM:

non hai risposto alla mia domanda



Scusami, cmq dovendo rendere il file accessibile a tutti gli impiegati dell'ufficio, che poca dimestichezza hanno con copia, incolla valori, excel e compagnia bella.
Voglio rendere il processo invisibile agli utenti ma che funzioni.

Comunque credo di essere arrivato ad una buona soluzione.
Posto il codice delle macro:
crea csv
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub
    On Error Resume Next
    
'TUTTA LA COLONNA A e B IN MAIUSCOLO
    If Not Intersect(Target, Range("A:B")) Is Nothing Then
        Application.EnableEvents = False
        Target = UCase(Target)
        Application.EnableEvents = True
    End If
End Sub



Sub crea_csv()
    Dim MyDir As String, NomeFile As String
    Dim FileExist As Boolean
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    ' cancella l'intera riga se nella colonna A non c'è scritto nulla
    On Error Resume Next
    Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

    MyDir = ThisWorkbook.Path
    NomeFile = ActiveSheet.Name
    

    If Dir(MyDir & "\" & NomeFile & ".csv") <> "" Then
        Select Case MsgBox("Attenzione: esiste già un file con questo nome." _
                           & vbCrLf & "Vuoi sovrascrivere il file?" _
                           , vbYesNo Or vbExclamation Or vbDefaultButton1, "Duplicato")
        Case vbNo
            Exit Sub
        End Select
    End If
    
    Application.DisplayAlerts = False
    
 
    With ActiveWorkbook
        .SaveAs Filename:=MyDir & "\" & NomeFile & ".csv", FileFormat:=xlCSV, Local:=True
        .Close savechanges:=False
    End With


    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "Foglio .csv creato con successo"
End Sub


L'ultima chicca sarebbe anche forzare l'inserimento NOME e COGNOME se accidentalmente uno mette solo o il NOME o il COGNOME, rispettivamente in colonna A e B.
Idee?

Ciao
Post: 1.948
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Veteran
2010
OFFLINE
09/02/2014 17:41

ti ringrazio molto per la considerazione che mi dai, ti ho chiesto se copiando e incollando i valori funziona e non mi hai ancora risposto, che ti cosa dire SI o NO ?

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 22
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
09/02/2014 17:54

Re:
patel45, 2/9/2014 5:41 PM:

ti ringrazio molto per la considerazione che mi dai, ti ho chiesto se copiando e incollando i valori funziona e non mi hai ancora risposto, che ti cosa dire SI o NO ?




ok, ho fatto il copia delle prime 3 righe, quelle con i valori, poi ho incollato solo i valori partendo da A2; ho importato il file csv in gmail ma i contatti con i valori vuoti sono rimasti, quindi copia/incolla_valori non funziona

Ciao
Post: 24
Registrato il: 14/10/2013
Città: ALTAMURA
Età: 39
Utente Junior
2010
OFFLINE
10/02/2014 13:39

CVD in ufficio mi richiedono anche la possibilità di esportare i contatti in un formato idoneo a Outlook.
Ho visto che il programma di posta accetta il formato .vcf e .pst
Qual è il migliore?

Inoltre qualcuno ha un pezzo di codice vb che faccia l'esportazione dei contatti da excel?

Grazie
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 16:58. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com