Condividi:        

[Help] Macro vba

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: [Help] Macro vba

Postdi ghosthunt » 14/06/09 16:48

Altra cosa ho creato una sub x calcolare la diff ma il risultato è diverso da quello che speravo mi esce o 0 o 1900 inoltre come posso impostare qs formula per calcolarmi l'età x tutti i nominativi nei campi di excel
es io ho nome datanascita e data x ed età come campi poi ho sotto il campo nome i nominativi e il resto x 100nomi
cmq questa la sub ma nn va nn capisco dove sbaglio

Sub calcolodata()
Dim datanascita As Date, datax As Date, età As Integer
età = DateDiff("yyyy", datax, datanascita)
Cells(8, 4) = età
End Sub
ghosthunt
Utente Junior
 
Post: 13
Iscritto il: 10/06/09 17:16

Sponsor
 

Re: [Help] Macro vba

Postdi Anthony47 » 14/06/09 23:39

Per la storia delle iniziali, probabilmente hai fatto una analisi un po' debole sulle possibili combinazioni: nomi singoli o doppi o tripli, cognomi idem, sigle uguali.
Posso chiederti a che cosa ti serve quell' abbreviazione, cosi' tanto per capire anche noi la complicazione...

Per la storia dell' eta': alle variabili datax e datanascita viene assegnato un qualche valore? E le eta' di 100 nominativi dove le vorresti inserire?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Help] Macro vba

Postdi ghosthunt » 15/06/09 18:09

Anthony47 ha scritto:Per la storia delle iniziali, probabilmente hai fatto una analisi un po' debole sulle possibili combinazioni: nomi singoli o doppi o tripli, cognomi idem, sigle uguali.
Posso chiederti a che cosa ti serve quell' abbreviazione, cosi' tanto per capire anche noi la complicazione...

Per la storia dell' eta': alle variabili datax e datanascita viene assegnato un qualche valore? E le eta' di 100 nominativi dove le vorresti inserire?

Ciao


no per le iniziali va bene come ti dicevo ,per l'eta' degli altri in un foglio excel andrebbe bene,cmq Anthony sto facendo un db access ad es io conosco il criterio like che vorrei usare per alcune cose solo che nn ricordo bene come farlo funzionare in questo caso
io vorrei che di tutti i nominativi mi facesse una query dove nel campo recapito tel adottassi il like per vedere se ci son ripetuti ma se metto like "*" nn succede nulla ndo sbaglio?
ghosthunt
Utente Junior
 
Post: 13
Iscritto il: 10/06/09 17:16

Re: [Help] Macro vba

Postdi Anthony47 » 17/06/09 21:28

Vabbe', se ritieni l' analisi esaustiva non ti ripeto la mia opinione.
Per quanto riguarda che cosa proporti, rinnovo la domanda di "spiegare a che cosa ti serve quell' abbreviazione, cosi' tanto per capire anche noi la complicazione..."

Per l' uso di like, non ho capito che cosa vorresti controllare e quale sintassi completa hai usato, quindi non so dare per ora suggerimenti; comunque se l' obiettivo fosse controllare che una specifica voce non sia duplicata in una colonna, potresti valutare l' uso di Application.WorksheetFunction.Countif per verificare che quel valore esite solo una volta.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Help] Macro vba

Postdi Flash30005 » 18/06/09 01:54

ghosthunt ha scritto:...io vorrei che di tutti i nominativi mi facesse una query dove nel campo recapito tel adottassi il like per vedere se ci son ripetuti ma se metto like "*" nn succede nulla ndo sbaglio?


Il like non cerca le ripetizioni ma eventualmente quello che inserisci (es un determinato numero con * ).
Ma se hai 1000 numeri non credo che tu possa cercarli uno per uno per verificare se sono doppioni

Non dici se oltre al numero anche il nome è ripetuto uguale (record duplicati, identici) e tu voglia eliminare i doppioni perché in questo caso è sufficiente che tu inserisca una chiave primaria nella struttura tabella in corrispondenza del campo telefono e come opzione metterai "duplicati non ammessi", alla chiusura della struttura avrai (in caso di numeri duplicati) un messaggio che ti avverte la perdita di dati (eliminerà i record con telefono uguale)
Se invece vuoi sapere quanti numeri sono duplicati puoi copiare questo script per Sql da incollare nella query
Codice: Seleziona tutto
SELECT Tabella1.Tel, Count(*) as Ripetiz
FROM Tabella1
Group by Tabella1.Tel;

Tabella1 = Nome tabella (sostituisci mettendo il nome della tua tabella)
Tel = nome del campo interessato (sostituiscilo con il nome del tuo campo)
Avrai una tabella con tutti i numeri telefonici raggruppati (quindi li vedrai solo una volta) mentre nel campo Ripetiz avrai quante volte quel numero si è ripetuto
poi semmai farai una ricerca dei numeri ripetuti più volte

Oppure fai una query di ricerca duplicati direttamente sulla tabella1 con questo codice Sql
Codice: Seleziona tutto
SELECT Tabella1.Tel, Tabella1.Nome
FROM Tabella1
WHERE (((Tabella1.Tel) In (SELECT [Tel] FROM [Tabella1] As Tmp GROUP BY [Tel] HAVING Count(*)>1 )))
ORDER BY Tabella1.Tel;

Nome = campo Utenti (sostituiscilo con il nome del tuo campo)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Help] Macro vba

Postdi Flash30005 » 18/06/09 14:45

ghosthunt ha scritto:...mario de rossi per me anche M.De R andrebbe bene
de rossi mario De R.M.

Ma una segretaria noooo, eh!?

Vedi se ti va bene questo codice

Codice: Seleziona tutto
Sub Abbrevia()
Dim NAbbrev(5)
Nabb = 2
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To UR
For v = 1 To 5
NAbbrev(v) = ""
Next v
ContaS = 0
Controllo = 0
    n = 1
    ini = 0
    Stringa = Worksheets("Foglio1").Range("A" & I).Value
    LunghN = Len(Stringa)
    For Car = 1 To LunghN
        If Mid(Stringa, Car, 1) = " " Then
        ContaS = ContaS + 1
            Spaz1 = Car - ini
            If Spaz1 <> Nabb + 1 Then
                If ini = 0 Then
                    NAbbrev(n) = Mid(Stringa, 1, 1) & "."
                Else
                    If Controllo = 1 Then
                     NAbbrev(n) = Mid(Stringa, Car + 1, 1) & "."
                    Else
                        NAbbrev(n) = Mid(Stringa, ini + 1, 1) & "."
                    End If
                End If
             Else
             Controllo = 1
                NAbbrev(n) = Mid(Stringa, ini + 1, Nabb) & " "
                n = n + 1
                NAbbrev(n) = Mid(Stringa, Car + 1, 1) & "."
            End If
            ini = Car
            n = n + 1
        End If

 If n <= ContaS + 1 And Car = LunghN Then NAbbrev(n) = Mid(Stringa, ini + 1, 1) & "."
    Next Car
    Worksheets("Foglio1").Range("C" & I).Value = NAbbrev(1) & NAbbrev(2) & NAbbrev(3) & NAbbrev(4) & NAbbrev(5)
Next I
End Sub


Vengono processate le celle nella colonna A, del foglio1, nelle quali ci deve essere il nome e cognome (separati da uno spazio) e inserisce le abbreviazioni nella colonna C (con l'ultimo comando: Worksheets("Foglio1").Range("C" & I).Value = NAbbrev(1) & etc etc)

Ciao


P.s. Guarda anche il post, precedente, relativo alla query di access
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[Help] Macro vba":


Chi c’è in linea

Visitano il forum: Ricky0185 e 50 ospiti