Condividi:        

aiuto EXCEL

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

aiuto EXCEL

Postdi marp » 17/05/11 08:17

Salve a tutti ho un nuovo problema da affrontare e vorrei mi aiutaste.

Ho una riga con i giorni del mese dall'1 al 31. In diversi giorni metto delle presenze di alcuni pazienti con una X. Io vorrei una funzione che mi faccia un controllo delle presenze (e quindi delle x) fino alla data odierna.

Esempio:

ALBENZIO JESSICA 1 2 X 4 5 6 X 8 9 X 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31


I giorni 1, 8 e 15 sn le domeniche. io vorrei controllare se fino al 17 (cioè oggi) il paziente è venuto almeno una volta a settimana. Se la risposta è positiva allora mi dovrebbe scrivere ok altrimenti no.ù


Mi potete aiutare???
marp
Newbie
 
Post: 5
Iscritto il: 14/04/11 13:00

Sponsor
 

Re: aiuto EXCEL

Postdi Avatar3 » 17/05/11 09:36

Perché non riservare la prima riga per la testata con
in A1 metterai Paziente
i Giorni da B1 a ... da 1 a 31
in A2 inserirai il nome del paziente e da B2 in poi le X della presenza in corrispondenza del giorno (situato alla prima riga)
in maniera tale da avere una tabella molto più leggibile specialmente se sul foglio hai più pazienti (come immagino che sia)

Ciao
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: aiuto EXCEL

Postdi marp » 17/05/11 10:06

Infatti cosi è...

il problema è invece quello ke ho spiegato prima...
una funzione ke mi restituisca ok se dall'uno al giorno odierno è stato presente almeno una volta a settimana (cioè c'è una x almeno una volta ogni settimana) e un no se non si verifica ciò
marp
Newbie
 
Post: 5
Iscritto il: 14/04/11 13:00

Re: aiuto EXCEL

Postdi Avatar3 » 17/05/11 16:01

Bisognerebbe fare un'analisi più approfondita perché in effetti dire almeno una volta a settimana non significa ogni sette giorni ma possono divenire 13, purché al 14 ci sia un'altra presenza.
Comunque ho imbastito questa macro.
Provala su un file nuovo
In A1 scrivi "Paziente"
Inserisci da A2 verso il basso e metti delle X all'interno della tabella
poi avvia la macro "CompilaMese"

Codice: Seleziona tutto
Sub CompilaMese()
Anno = Year(Now)
Mese = Month(Now)
Range("B2:AF1").ClearContents
For Giorno = 1 To 31
If Month(DateSerial(Anno, Mese, Giorno)) > Mese Or Day(DateSerial(Anno, Mese, Giorno)) > Day(Now) Then GoTo esci
UC = Range("IV1").End(xlToLeft).Column + 1
Cells(1, UC).Value = DateSerial(Anno, Mese, Giorno)
Cells(1, UC).NumberFormat = "dd"
Next Giorno
esci:
Call Controlla
End Sub

Sub Controlla()
Columns("AG:AG").ClearContents
UR = Range("A" & Rows.Count).End(xlUp).Row
UC = Range("IV1").End(xlToLeft).Column
Periodo = Int(UC / 7)
For RR = 2 To UR
If RR = 7 Then MsgBox RR
Conta = 0
ContaX = 0
MConta = 0
For CC = 2 To UC
If UC - 1 < 7 Then Range("AG" & RR).Value = "Ok"
Conta = Conta + 1
If Conta > MConta Then MConta = Conta
If UCase(Cells(RR, CC).Value) = "X" Then
Conta = 0
ContaX = ContaX + 1
End If
Next CC
If UC - 1 < 14 And ContaX >= 1 Then
    Range("AG" & RR).Value = "Ok"
    GoTo salta
End If
If UC - 1 < 21 And (ContaX >= 2 Or MConta < 13) Then
    Range("AG" & RR).Value = "Ok"
    GoTo salta
Else
    Range("AG" & RR).Value = "No"
End If
If UC - 1 < 28 And (ContaX >= 3 Or MConta < 13) Then
    Range("AG" & RR).Value = "Ok"
    GoTo salta
Else
    Range("AG" & RR).Value = "No"
End If
salta:
Next RR
End Sub


Se ci sono problemi posta ancora
ciao
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04


Torna a Applicazioni Office Windows


Topic correlati a "aiuto EXCEL":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti