Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 23-10-2014, 12.02.09   #1
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
calculate su condizione

Ciao a tutti! Sono nuova di VBA e sto lavorando con un foglio excel abbastanza complesso.
A me servirebbe un codice per cui inserendo un numero di serie nelle celle della colonna c, partendo da c4, si vada a confrontare il contenuto della cella nella colonna R della stessa riga, in cui compare la "DATA di consegna", con la data odierna. Nel caso in cui la data (nellla colonna R) sia passata, mi si scateni una macro GIà impostata.
Vorrei anche che il mio codice si fermi nel momento in cui nella mia colonna C non sia inserito nulla.
Quindi il mio codice si dovrebbe scatenare nel momento in cui vado ad inserire uno ad uno il mio numero di serie e quindi la data da confrontare sarebbe risultato di una formula.
Non so se mi sono spiegata sufficientemente!
Se avessi omesso dei dettagli, vi prego di scrivermi. GRAZIE, gentilissimiiiiiii!

il mio codice di base è questo, che dite?



Private Sub Worksheet_calculate(ByVal Target As Range)
Dim cella As Range
For Each cella In Range("r4:r20")
If cella.Value < Date Then
Macro2
End If
Next

End Sub
ire.zazi non è collegato   Rispondi citando
Vecchio 23-10-2014, 23.43.18   #2
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: calculate su condizione

spiegati meglio.
sarebbe l'ideale allegare un file di esempio sostituendo i dati sensibili con dati a caso.

Il codice postato è molto instabile, confrontare un valore cella con una data non è il massimo, a meno che non sia trattato preventivamente per verificarne il formato.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 24-10-2014, 09.29.50   #3
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
Rif: calculate su condizione

Per spiegarmi al meglio vorrei mettere un'immagine, ma non riesco-! :cry:
Provo a ricreare la mia tabella!
Io ho una successione di date; normalmente la mia tabella si compila partendo dalla data di consegna cliente" e andando a ritroso sottraendo dei giorni (per semplificare facciamo 1) fino ad arrivare alla data collaudo.
Data collaudo / Data x distension/taglio / Data approntamento gg / Data approntamento / Data Consegna Cliente / Nuova Consegna.
Nel caso in cui però la mia "data consegna cliente" fosse passata rispetto a quella odierna, io parto dalla "data di collaudo" considerandola come quella odierna e compilo la tabella facendo il procedimento al contrario, andando quindi a sommare dei giorni fino alla data di approntamento, scavalcando la "data di consegna cliente,da cui siamo partiti,e trovando una NUOVA CONSEGNA CLIENTE.
Quindi: 1. in una cella cella colonna "C", partendo dalla "C4" io scrivo un numero
2. automaticamente se in "C.." è contenuto un dato controllare se la data contenuta nella cella della stessa riga ma della colonna "R" è minore della data odierna
3. se è verificata la condizione descritta in "2." eseguire la macro di nome "Macro1"

Sono stata più chiara!?
Il codice da me utilizzato sarebbe:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target(1) <> "" And Not Intersect(Target, Range("C4:C20")) Is Nothing Then
If IsDate(Range("R" & Target.Row)) Then
If Range("R" & Target.Row) < Date Then Call pippo

End If
End If
End Sub

Può sembrarti idoneo?
GRAZIE
ire.zazi non è collegato   Rispondi citando
Vecchio 24-10-2014, 09.40.23   #4
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: calculate su condizione

In una finestra di debug, acquisici i valori di:
Target(1)
Intersect(Target, Range("C4:C20"))
Range("R" & Target.Row)
Date
Sono coerenti con quello che ti aspetteresti ?

Presta attenzione a quanto detto qui: "confrontare un valore cella con una data non è il massimo, a meno che non sia trattato preventivamente per verificarne il formato."
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 24-10-2014, 10.21.39   #5
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
Rif: calculate su condizione

Non ho capito cosa intendi con la prima domanda.
Quello che dovrei confrontare è una cella contentente una data con la data odierna. quindi dovrebbe funzionare, no?!
ire.zazi non è collegato   Rispondi citando
Vecchio 24-10-2014, 10.39.46   #6
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: calculate su condizione

Quota:
Inviato da ire.zazi Visualizza messaggio
Non ho capito cosa intendi con la prima domanda.
Quello che dovrei confrontare è una cella contentente una data con la data odierna. quindi dovrebbe funzionare, no?!
Solo se la data, nella cella, è scritta in maniera corretta.
Dato che il valore nella cella viene inserito in maniera arbitraria, è facile che possano generarsi degli errori, per cui sarebbe meglio verificare che il contenuto della cella sia una data corretta prima di procedere.
Potresti usare anche la formattazione condizionale per evidenziare una cella in cui il valore inserito non sia una data corretta, così da notarlo con maggiore facilità.

Con la prima domanda intendeva che, utilizzando le funzionalità di debug, dovresti riuscire a capire quale sia il dato che non ha il valore che ti aspetti, e quindi indagare su quello.
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 24-10-2014, 11.56.42   #7
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: calculate su condizione

Esattamente.
I valori restituiti sono messi in relazione tra loro secondo una logica dettata da condizioni e comparazioni...
Se entrambe vengono rispettate, allora il codice funziona; "Potrebbe" mancare solo l'ottimizzazione che non preclude al risultato finale.
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 24-10-2014, 12.03.56   #8
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: calculate su condizione

Quota:
Inviato da ire.zazi Visualizza messaggio
...
Quindi: 1. in una cella cella colonna "C", partendo dalla "C4" io scrivo un numero
2. automaticamente se in "C.." è contenuto un dato controllare se la data contenuta nella cella della stessa riga ma della colonna "R" è minore della data odierna
3. se è verificata la condizione descritta in "2." eseguire la macro di nome "Macro1"

Sono stata più chiara!?
Chiarissima.
Molto schematica.
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 24-10-2014, 12.06.46   #9
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
Rif: calculate su condizione

Il mio codice FUNZIONA!! evviva!! In realtà la data è pescata da un altro foglio excel quindi diciamo che il formato è controllato. Ora mim servirebbe un altro aiuto, se avete voglia!
Il mio codice corretto è:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer
If Target.Cells.Count = 1 And Target(1) <> "" And Not Intersect(Target, Range("C4:C20")) Is Nothing Then
If IsDate(Range("R" & Target.Row)) Then
If Range("R" & Target.Row) < Date Then
I = ActiveCell.Row
Call pippo(I)
End If
End If
End If
End Sub


Mi servirebbe una Macro tale per cui SULLA STESSA RIGA della cella attiva, mi compili le celle nelle colonne n,o ,p ,q secondo una formula.
prima dichiaro i come parametro!
La mia i che varia sarebbe il numero delle righe! Userei RANGE ("i & n ") dove i è la riga della mia cella attiva ela n è la colonna da considerare.
Copio da excel la formula per ogni cella.
Non so se sono stata sufficientemente chiara...
ire.zazi non è collegato   Rispondi citando
Vecchio 24-10-2014, 14.13.22   #10
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: calculate su condizione

Così fai quel che vuoi:

Codice:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Ctrl+G per la finestra debug
Debug.Print "Riga: "; Target.Cells.Row, "Colonna:"; Target.Cells.Column
Debug.Print "Cella:"; Target.Address
Target.Formula = "=" & Target.Address
End Sub
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 24-10-2014, 23.58.29   #11
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: calculate su condizione

Quota:
Inviato da ire.zazi Visualizza messaggio

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer
If Target.Cells.Count = 1 And Target(1) <> "" And Not Intersect(Target, Range("C4:C20")) Is Nothing Then
If IsDate(Range("R" & Target.Row)) Then
If Range("R" & Target.Row) < Date Then
I = ActiveCell.Row
Call pippo(I)
End If
End If
End If
End Sub
Non so se è l'età, ma io non ho ancora capito che devi fare e dal codice che hai postato intuisco che:

supponiamo di scrivere in C6
col 1° IF fai un controllo
nel 2° IF si verifica che la cella R6 sia una data
nel 3° IF verifichi che il valore nella cella R6 sia minore della data odierna
e se lo è poni la variabile I uguale al valore della riga della cella attiva
e passi il valore di I ad una macro

Però ....
quando hai digitato la data in C6 e schiacci Invio la cella attiva diventa la n° 7 e passi quel valore alla macro. è corretto questo?

tu hai il file sotto mano, magari per te è semplice, ma io non capisco cosa devi fare.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 25-10-2014, 00.09.06   #12
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: calculate su condizione

vedo che il problema lo hai postato su altri 3 forum

io non sono contraria al cross-posting ma almeno fornisci delle informazioni più dettagliate anche quì almeno uno capisce quello che cerchi.

ti pare?
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 27-10-2014, 08.40.15   #13
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
Rif: calculate su condizione

Come faccio a postare un'immagine o il file excel? cosi almeno riesco a spiegarmi meglio....
ire.zazi non è collegato   Rispondi citando
Vecchio 27-10-2014, 22.00.32   #14
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: calculate su condizione

è semplice, se scorri il box quando rispondi alla discussione vedi anche il campo per allegare il file, oppure lo uppi su qualche host e posti il suo link
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 28-10-2014, 10.19.28   #15
ire.zazi
Newbie
 
Registrato: 23-10-2014
Messaggi: 6
ire.zazi promette bene
Rif: calculate su condizione

trovato il modo per fare il link! http://www.filedropper.com/esempiofoglio.
Spero riusciate a vederlo.
Provo a rispiegare la mia macro:
"partendo dalla cella attiva della colonna R (nel mio caso R4), mi sposto nella colonna N della stessa riga ( potrei usare Range("N" & I)), dove inserisco la data odierna.
Mi sposto poi nella colonna O inserendo la formula "=SE($H4="distensione";$P4-$B$2;SE($H4="Taglio a 1/2";$P4-$C$2;SE($H4="distensione+Taglio";$P4-$D$2;$P4+0)))";
Nella COLONNA P con la formula "=SE($U4="MORANDINI";SE(O(GIORNO.SETTIMANA($Q4)=6; GIORNO.SETTIMANA($Q4)=2);$Q4-4;SE(GIORNO.SETTIMANA($Q4)=3;$Q4-1;SE(O(GIORNO.SETTIMANA($Q4)=4;GIORNO.SETTIMANA($Q 4)=7);$Q4-2;SE(O(GIORNO.SETTIMANA($Q4)=5;GIORNO.SETTIMANA($Q 4)=1);$Q4-3;SE(GIORNO.SETTIMANA($Q4)=7;$Q4-1;SE(GIORNO.SETTIMANA($Q4)=1;$Q4-2))))));$Q4+0)";
nella COLONNA Q con la formula : "=$R4-CERCA.VERT($C4;$A:$AF;32;FALSO).
Alla fine della macro La mia cella attiva è nella colonna R nella riga successiva a quella precedente."
Grazie mille dei consigli!=)
ire.zazi non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Corso VBA Alexsandra Guide 85 16-11-2016 11.11.51
Doppia condizione Excel dafne984 Office suite 0 28-10-2011 12.00.49
30 giugno 08: la morte di Windows XP Sbavi News dal WEB 110 22-06-2008 12.29.49
Politica & co.: full throttle! Nothatkind Chiacchiere in libertà 1912 13-01-2006 00.28.09

Orario GMT +2. Ora sono le: 02.17.08.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.