Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Aumentare lettera Colonna e differenza anni tra date

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

Aumentare lettera Colonna e differenza anni tra date

Postdi valle1975 » 11/10/12 17:05

Ciao, ho 2 quesiti da porvi:

1) Devo mettere nel ciclo di una macro la copia di 4 colonne fisse, ma non riesco a trovare come impostare la cella di partenza su cui incollare le colonne ad ogni ciclo. Questa la parte di codice incriminata:
    For i = 1 To 30
    Columns("A:D").Select
    Range("A2").Activate
    Selection.Copy
    :arrow: colonna = colonna + 5
    dest = (colonna & "1")
    Range(dest).Select
    ActiveSheet.Paste
Con la freccia il comando che non funziona, in pratica io voglio incrementare la lettera della colonna di 5, Es. A+5=F

2) Ho 2 date, complete di gg/mm/aaaa (data di assunzione e data di oggi), devo calcolare il numero di anni di presenza in azienda.

Grazie a tutti, saluti.
Valerio
---------------------------------
Win Xp + MS Office 2010 Ita
valle1975
Utente Senior
 
Post: 196
Iscritto il: 27/09/10 16:33

Sponsor
 

Re: Aumentare lettera Colonna e differenza anni tra date

Postdi wallace&gromit » 11/10/12 17:20

ciao,
punto 1)... come fai a sommare un numero ad una lettera?
devi lavorare con i riferimenti relativi tipo C1R1, ma sento che il codice è da rivedere un po' alla radice (roba per flash).

punto 2) ti serve la differenza tra l'anno di inizio e quello attuale oppure proprio il numero di anni a contare dalla data di inizio?

Nel primo caso la formula è: =anno(oggi()-anno("data inizio"))
Nel secondo caso potresti fare: =(oggi()-"data inizio")/365 (è un'approssimazione che non tiene conto dei bisestili)
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: Aumentare lettera Colonna e differenza anni tra date

Postdi Anthony47 » 11/10/12 23:41

Usando Cells (invece che Range) puoi usare direttamente il "numero" di colonna e di riga; quindi questa dovrebbe essere equivalente:
Codice: Seleziona tutto
For i = 1 To 30
colonna = colonna + 5
Columns("A:D").Select
Range("A2").Activate
Selection.Copy Destination:=Cells(1, colonna)
?Next i?

Assumo che "colonna" sia per te una variabile che parte da valore 0 e viene incrementata a ogni ciclo.
Tuttavia non ho capito cosa dovrebbe fare l' istruzione Range("A2").Activate

Per la 2, in aggiunta ai suggerimenti di w&g (vedi sopra) penso ti potra' aiutare la funzione Data.Diff. Non e' documentata nell' help on line di excel ma esiste, vedi qui per la sintassi: http://support.microsoft.com/kb/625201/it

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Aumentare lettera Colonna e differenza anni tra date

Postdi Flash30005 » 12/10/12 02:34

Per il punto 1
puoi assegnare al tuo comando (freccia) a questa macro
Codice: Seleziona tutto
Sub CopiaC()
UC = Cells(1, Columns.Count).End(xlToLeft).Column + 2
Columns("A:D").Copy Destination:=Columns(UC)
End Sub

(ma non ho capito il cilco for next di i da 1 a 30) :roll:

Per quanto riguarda la differenza anno puoi usare la formula
Codice: Seleziona tutto
=ANNO(B1)-ANNO(A1)+1

Supponendo che l'anno di assunzione sia in A1 e quello di oggi sia in B1 (considerando che la data di oggi potrebbe non essere un anno intero potresti sottrarre 1 alla formula)
Codice: Seleziona tutto
=ANNO(B1)-ANNO(A1)

ma rimarrebbero sempre valori non esatti in quanto l'assunzione potrebbe (come sicuramente è) non essere avvenuta il 1° gennaio dell'anno X
quindi se vuoi gli anni effettivi di assunzione dovrai ripiegare in una formula di questo tipo
Codice: Seleziona tutto
=INT((B1-A1)/365)

Ma in un lungo periodo ci sono anche gli anni bisestili pertanto una formula molto vicina alla realtà potrebbe essere questa
Codice: Seleziona tutto
=INT(((B1-A1)-RESTO(ANNO(B1)-ANNO(A1);4))/365)


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aumentare lettera Colonna e differenza anni tra date

Postdi Anthony47 » 12/10/12 11:52

Non escludo che anche la formula di Flash possa dare un risultato corretto, ma essendici la funzione Data.diff e' un po' come suggerire, per calcolare la somma di 20 celle contigue, una formula tipo =A1+A2+A3+...+A20 invece che =Somma(A1:A20)

Ciao a tutti
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Aumentare lettera Colonna e differenza anni tra date":


Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti