Condividi:        

Macro controlla se le risposte delle celle sono complete

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

Macro controlla se le risposte delle celle sono complete

Postdi Zagor57 » 11/11/15 18:25

Buonasera
e da tanto non ci sentiamo
Avrei bisogno di risolvere "per me" un enorme problema
Mi spiego :
Nella cella
G11
puo variare il testo in base al lavoro da effettuare ,può chiamarsi--
PIPPO -- PLUTO---Braccio di Ferro.ecc.ecc

in base alle varie risposte che verranno date in determinate cella in un'altra cella verrà effettuata un'ulteriore selezione con
convalida dati da elenco

esempio
se nella cella G11= PIPPO,e la cellA O LA-G20=""--O LA-G21=""--O LA-G22=""--O LA-F24=""
e poi ancora
se la cella L14="S" e la cella L14= " "
se la cella L21="S" e la cella N21=" "
se la cella L25="S" e la cella L25= " "
se la cella L30="S" e la cella N30=" " e cosi via per altre celle
poiche il tutto verrà incorporata in un'altra macro CON L'INVIO DELLA MACRO dorebbe selezionare la cella senza risposta e colorarla di verde o qualsiasi altro colore per individuare con velocità la cella senza risposta
Ho provato a fare in questo modo,
Codice: Seleziona tutto
  ' <<<<<-----Tetto a 1 Falda
    If Range("g11") = "Tetto a 1 falda unica" And Range("F24") = "" Then
       Range("F24").Select
      MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
      End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("g28") = "s" And Range("g29") = "" Then
       Range("G29").Select
      MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
      End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("l14") = "s" And Range("l15") = "" Then
       Range("l15").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("l14") = "s" And Range("l16") = "" Then
       Range("l16").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L18") = "s" And Range("N18") = "" Then
       Range("N18").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L21") = "s" And Range("N21") = "" Then
       Range("N21").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
      If Range("g11") = "Tetto a 1 falda unica" And Range("L22") = "s" And Range("N22") = "" Then
       Range("N2").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
      If Range("g11") = "Tetto a 1 falda unica" And Range("L22") = "s" And Range("l23") = "" Then
       Range("l23").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L25") = "s" And Range("n25") = "" Then
       Range("n25").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L28") = "s" And Range("p28") = "" Then
       Range("p28").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L29") = "s" And Range("N29") And Range("P29") = "" Then
       Range("N29").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
    If Range("g11") = "Tetto a 1 falda unica" And Range("L30") = "s" And Range("N30") = "" Then
       Range("N30").Select
       MsgBox ("Attenzione Campi non compilati Tutti"): Exit Sub
       End If
      '<<<<<<-----Fine tetto a 1 Falda
ma: mi funziona in parte e non mi colora la cella
:aaah :undecided: spero nel vostro unico e prezioso AIUTOOOOOOOOOOOO

Grazie
Avatar utente
Zagor57
Utente Junior
 
Post: 75
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Sponsor
 

Re: Macro controlla se le risposte delle celle sono complet

Postdi Anthony47 » 11/11/15 22:47

Ovviamente si puo' fare in vba, ma io lo farei direttamente sul foglio Excel, usando la formattazione condizionale.
Ad esempio:
Prima situazione, se G11=" Tetto a 1 falda unica" allora F24 deve essere compilata
-in una cella libera usi la formula
Codice: Seleziona tutto
=SE(E(G11="Tetto a 1 falda unica";F24="");1;0)

-applichi a F24 una formattazione condizionale usando la formula =LaCellaConLaFormula=1 e applichi ad esempio il colore di sfondo Rosso
Seconda situazione, se G11 = "Tetto a 1 falda unica" E G28="S", allora G29 deve essere compilata
-in una cella libera usi la formula
Codice: Seleziona tutto
=SE(E(G11="Tetto a 1 falda unica";G28="S";G29="");1;0)

-usi il risultato di questa formula per applicare una formattazione condizionale e G29, con lo stesso processo di prima
E cosi' via...

In questo modo quando qualche cella deve essere ancora compilata risultera' in rosso.

Poi in una cella calcola se ci sono celle che risultano rosse; i bastera' fare la Somma di tutte le celle in cui hai calcolato gli 1/0 con le formule precedenti.
Infine nel vba controllerai solo se ci sono delle celle incomplete, e se Si invierai un messaggio generico; esempio
Codice: Seleziona tutto
If Range("Z1")>0 then       '<< La cella in cui hai fatto la Somma
    MsgBox ("Attenzione Campi non compilati Tutti")
    Application.Goto Range("A11"), True       '<< Una cella da cui si possa vedere a schermo l'intero gruppo di celle da compilare
    Exit Sub
End If


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

Re: Macro controlla se le risposte delle celle sono complet

Postdi Zagor57 » 12/11/15 13:22

Grazie Anthony per la tua risposta
come al solito sei sempre un grande
OK-- ho fatto come mi hai suggerito e mi sta benissimo il risultato

per facilità o dato una numerazione alla cella ( G 11) esattamente nella cella (E50) ho inserito questa condizione che richiama le 8 combinazioni di tipologia di tettoie
Codice: Seleziona tutto
=SE($G$11="Tetto a 1 falda unica";1;SE($G$11="Tetto a 1 falda libera";2;SE($G$11="Tetto a due Falde";3;SE($G$11="Tetto  ad Angolo";4;SE($G$11="Tetto Sporgente";5;SE($G$11="Tetto Rientrante";6;SE($G$11="Tetto a due Falde con Capriate";7;SE($G$11="Tetto a due Falde con Capriate e arcarecci in  lunghezza";8;""))))))))


e nelle celle (A50:A65) ho inserito le varie condizioni
Codice: Seleziona tutto
=SE(E($E$50=1;G20="");1;0)
=SE(E($E$50=1;G21="");1;0)
=SE(E($E$50=1;G22<>"";F24="");1;0)
=SE(E($E$50=1;G28="S";G29="");1;0)


e cosi via di seguito.Il tutto funziona benissimo
Poiche le varie tipologie di tettoie non hanno tutte le celle in comune ma sono diversificate, e qui mi sto imballando.

Bene adesso devo associare esempio devo inserire
=SE(E($E$50=1;OR;SE(E($E$50=2;OR;SE(E($E$50=3;OR;SE(E($E$50=4;OR;SE(E($E$50=5;e cosi via (G28="S";G29="");1;0)


ho fatto mille prove ma non riesco ad assemblare la giusta formula
:oops: :oops:
Avatar utente
Zagor57
Utente Junior
 
Post: 75
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Re: Macro controlla se le risposte delle celle sono complet

Postdi Anthony47 » 12/11/15 21:11

Eh eh, io da una formula che non funziona non sono in grado di capire che cosa la formula non riesce a fare bene, cioe' che cosa vorresti fare tu...

In generale, gli operatori logici si usano come in questi esempi
Codice: Seleziona tutto
=Se(E(Condizione1;O(condizione2;Condizione3);E(Condizione4;Condizione5)); SeVero;SeFalso)
Se apri le parentesi, la condizione di test sara' verificata se si verificano tutte le seguenti condizioni:
-Condizione1=Vera
-Condizione2 oppure Condizione3 (o ambedue) =Vera
-Condizione4 e Condizione5 ambedue Vere
Rimane ovviamente la possibilita' di annidare piu' Se, come nel tipo
Codice: Seleziona tutto
=Se(InsiemeDiCondizioni;Se(SecondoInsiemeDiCondizioni;SeVero2;SeFalso2);SeFalso1)


Quindi se non risolvi con questo spunto allora dovresti cercare di spiegare quali consizioni vorresti testare, a parte la formula azzardata che hai pubblicato.

Tieni anche presente che la formula che hai messo in E50 potrebbe essere scritta come
Codice: Seleziona tutto
=($G$11="Tetto a 1 falda unica")*1+($G$11="Tetto a 1 falda libera")*2+($G$11="Tetto a due Falde")*3+($G$11="Tetto  ad Angolo")*4+($G$11="Tetto Sporgente")*5+($G$11="Tetto Rientrante")*6+($G$11="Tetto a due Falde con Capriate")*7+($G$11="Tetto a due Falde con Capriate e arcarecci in  lunghezza")*8

Il vantaggio non e' tanto nella minore lunghezza, quanto nell'assenza di annidamento delle funzioni Se che rende secondo me la formula sviluppabile piu' semplicemente.

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

Re: Macro controlla se le risposte delle celle sono complet

Postdi Zagor57 » 14/11/15 10:34

Ciao Anthony47
sicuramente non sono stato sufficentemente chiaro
La formula che tu mi hai suggerito funziona perfettamente
Sto nel pallone su come annidare le varie 8 combinazioni nelle celle da A50:A66

esempio
Nella cella E50 il valore può essere o 1,2,3,4,5,6,7,8
per non dover fare 130 formattazione condizionale ,e poichè nelle celle A50-A66 per la maggior parte delle combinazioni della cella E50 sono similari

1^ situazione:parte delle combinazioni della cella E50 interessano la cella A50

Cella A50----se( nella cella E50=1 oppure nella cella E50=4 oppure nella cella E50=7;e se nella cella g24=nulla; la cella g24 deve colorarsi di rosso in questo caso con la stessa formattazione condizionale ho soddisfatto tre tipologie di tettoie

2^ situazione: nella cella A51 tutte e otto le combinazioni della cella E50 vengono interessate

Cella A51----se( nella cella E50=1 oppure nella cella E50=2 oppure nella cella E50=3 oppure nella cella E50=4 oppure nella cella E50=5 oppure nella cella E50=6 oppure nella cella E50=7 8 ;e se nella cella L14="SI" e la cella N15 è Vuota allora la cella N15 deve colorarsi di rosso in questo caso con la stessa formattazione condizionale ho soddisfatto tutte e otto le tipologie di tettoie

Mi sembra molto strano ma non riesco a mettere gli operatori logici al loro posto
ripeto questo è per evitare di fare130 Formattazione condizionale

Spero di aver dato più chiarezza al Mio Problema
Avatar utente
Zagor57
Utente Junior
 
Post: 75
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Re: Macro controlla se le risposte delle celle sono complet

Postdi Anthony47 » 14/11/15 14:58

Cella A50----se( nella cella E50=1 oppure nella cella E50=4 oppure nella cella E50=7;e se nella cella g24=nulla; la cella g24 deve colorarsi di rosso in questo caso con la stessa formattazione condizionale ho soddisfatto tre tipologie di tettoie

Questa condizione viene individuata con la seguente formula:
Codice: Seleziona tutto
=SE(E(O(E50=1;E50=4;E50=7);G24="");1;0)

Cella A51----se( nella cella E50=1 oppure nella cella E50=2 oppure nella cella E50=3 oppure nella cella E50=4 oppure nella cella E50=5 oppure nella cella E50=6 oppure nella cella E50=7 8 ;e se nella cella L14="SI" e la cella N15 è Vuota allora la cella N15 deve colorarsi di rosso in questo caso con la stessa formattazione condizionale ho soddisfatto tutte e otto le tipologie di tettoie

Questa condizione viene individuata con la seguente formula:
Codice: Seleziona tutto
=SE(E(E50>0;E50<=8;L14="SI";N15="");1;0)

(non ho capito se E50 puo' essere compresa tra 1-8 (come nella formula) o se tra 1-7)

E' questo che cercavi?

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

Re: Macro controlla se le risposte delle celle sono complet

Postdi Zagor57 » 14/11/15 18:16

Perfetto
grazie Mille Anthony
Avatar utente
Zagor57
Utente Junior
 
Post: 75
Iscritto il: 04/05/15 19:35
Località: Massafra TA


Torna a Applicazioni Office Windows


Topic correlati a "Macro controlla se le risposte delle celle sono complete":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti