Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Script per Excel 2008 (Mac) Opzioni
desy84
Inviato: Monday, September 19, 2011 12:25:55 PM
Rank: Newbie

Iscritto dal : 9/19/2011
Posts: 4
Caio a tutti,
sono nuova del forum e vorrei porvi un problema:
premetto che ho qualche base di programmazione non sono praticissima di excel, ma mi trovo ad avere due tabelle identiche una più aggiornata dell'altra e in sintesi voglio avere una terza tabella con tutti i campi aggiornati senza duplicati di quelli precedenti. Ho trovato uno script che fa al caso mio, con poche modifiche dovrebbe darmi esattamente questo, ma problema non avendo mai inserito uno script con Excel 2008 per Mac non so bene come fare, mi potete aiutare?
Grazie e scusate l'ignoranza d'oh!
Sponsor
Inviato: Monday, September 19, 2011 12:25:55 PM

 
a10n11
Inviato: Monday, September 19, 2011 12:43:37 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
per una strana e stravagante decisione di Microsoft, la vesione 2008 non ha il supporto di Visual Basic for application (VBA) pertanto tale via non è percorribile. Possono trovarsi altre soluzioni, tipo comparazione delle tabelle via "formule" o via filtri per raggiungere lo scopo. Bisognerebbe vedere come sono strutturate le tabelle.
saluti
Giap

desy84
Inviato: Monday, September 19, 2011 12:54:08 PM
Rank: Newbie

Iscritto dal : 9/19/2011
Posts: 4
Ok allora posso tentare con un pc con office 2010 ( mai usato il 2010 ma almeno sono più pratica con il Pc che col mac).
Le tabelle in questione sono composte da dati alfanumerici, con i classici campi Nome, Cognome, Società, indirizzo, ruolo, email.
In pratica posso solo importare i dati dal db del sito di registrazione creando di volta in volta una nuova tabella con i dati aggiornati fino a quel momento.
a10n11
Inviato: Monday, September 19, 2011 8:09:01 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Le due tabelle a cui ti riferisci, sono identiche nel loro ID e differiscono solo nella completezza dei campi?
esempio:
nella tabella 1
Id (preso il nome come esempio) Pippo è presente l'indirizzo
e nella tabella 2 stesso ID non è presente l'indirizzo

si deve dare per inteso che ognuna delle due tabelle non sia completa nei rispettivi campi ma si completino solo
unendo le due tabelle?

Sarebbe utile vedere uno stralcio delle due tabelle.
saluti
Giap


desy84
Inviato: Tuesday, September 20, 2011 10:07:57 AM
Rank: Newbie

Iscritto dal : 9/19/2011
Posts: 4
grazie a10n11,
In pratica si tratta dell'importazione dati del db di registrazione ad un sito web. la cosa che cambia da una tabella all'altra sono i dati dei nuovi iscritti quindi intere righe. I vari campi rimangono invariati vorrei solo aggiungere le nuove righe di volta in volta, ma ho bisogno che mi faccia un controllo sulla presenza di duplicati (indicizzando nome e cognome perchè trattandosi di aziende spesso mail e indirizzo si ripetono)poichè c'è sempre qualcuno che si registra 20 volte prima di capire che deve attendere la mail di conferma per più di 2 sec. -.-'
a10n11
Inviato: Tuesday, September 20, 2011 11:01:21 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
ipotizzando una situazione cone quella in immagine:

La tabella Storica su Foglio1
La Tabella Importata su foglio2



con la macro che segue, viene eseguito un controllo nei campi Nome/Cognome
delle due tabelle, se non vengono trovati record ripetuti, tutta la riga del nuovo contatto viene inserita nella tabella storica.
questa è la macro:

Sub test()
Application.ScreenUpdating = False
With Sheets("Foglio3")
.Cells.ClearContents
End With
With Sheets("Foglio1")
Urig = .Range("a" & Rows.Count).End(xlUp).Row
Set Rng = Range(.Cells(2, 1), .Cells(Urig, 1))
End With
With Sheets("Foglio2")
Uriga = .Range("a" & Rows.Count).End(xlUp).Row
Set Rng2 = Range(.Cells(2, 1), .Cells(Uriga, 1))
End With
Lrow = Urig + 1
For Each cl2 In Rng2
RR = cl2.Row
ctr = False
For Each cl In Rng
If cl2.Value & cl2.Offset(0, 1).Value = cl.Value & cl.Offset(0, 1).Value Then
ctr = True
Exit For
End If
Next cl
If Not ctr Then
With Sheets("Foglio2")
.Cells(RR, 1).Resize(, 5).Copy Destination:=Sheets("Foglio1").Cells(Lrow, 1)
End With
Lrow = Lrow + 1
End If
Next cl2
Application.ScreenUpdating = True
End Sub


saluti
Giap

desy84
Inviato: Tuesday, September 20, 2011 11:07:46 AM
Rank: Newbie

Iscritto dal : 9/19/2011
Posts: 4
Perfetto! Grazie di cuore!
provo subito!
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.