Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Convalida Dati con spazio nei testi

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

Convalida Dati con spazio nei testi

Postdi Zoro76 » 02/05/13 14:15

Buon giorno a tutti

ho la necessità di fare una convalida dati "tripla" avendo nelle celle testi con spazi.

ho provato con =INDIRETTO(...) ma mi da errore.

mi può aiutare qualcuno?

Grazie

Allego un file per spiegare meglio.
http://rapidshare.com/files/4091894977/ ... aDati.xlsx
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55

Sponsor
 

Re: Convalida Dati con spazio nei testi

Postdi wallace&gromit » 02/05/13 14:32

prova a vedere se questo file, scaturito da una discussione passata, può fare al caso tuo:
http://www.filedropper.com/convalidesuccessive
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: Convalida Dati con spazio nei testi

Postdi Zoro76 » 02/05/13 15:03

Ciao Wallace

ho dato un'occhiata al file che mi hai consigliato... ed in effetti è quello che mi serve.

Ho però qualche problema a capire come funziona:
Ad esempio nel foglio Database nella colonna H vengono riportati i dati di colonna A. come?
stesso discorso per colonna I dove vengono riportati i dati colonna B

Riesci a spiegarmi, se non è troppo complicato, il funzionamento?

Grazie mille
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55

Re: Convalida Dati con spazio nei testi

Postdi wallace&gromit » 02/05/13 15:32

nella colonna A di "Ordine-Preventivo" fai la prima scelta (per esempio "UNO"), da quel momento la scelta in colonna B prenderà in considerazione solo le possibilità corrispondenti a "UNO" (per esempio "8") , fatta questa scelta avrai ridotto ancora le possibilità di scelta nella colonna C (nell'esempio qui era tutto "STANDARD"), e così via. Alla fine avrai fatto una selezione specifica dell'articolo scelto e ti usciranno gli ulteriori dati impostati nelle colonne successive del database; puoi modificare a piacimento il database e vedrai che le possibilità di scelta cambiano di conseguenza.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: Convalida Dati con spazio nei testi

Postdi Zoro76 » 02/05/13 15:57

Si si questo lo avevo capito. Quello che non avevo capito era il fatto che mi comparivano dei dati nella colonna H sia di Database che di Database2. Ora guardando meglio il file ho visto che c'è un codice nel foglio Ordine-Preventivo che molto probabilmente gestisce il tutto. Purtroppo credo anche che questo codice sia fatto ad hoc per questo file.
Non so se riesco ad adattarlo al mio file anche perchè leggo nel codice tanti riferimenti a convalide dati diverse.

Secondo te questo è l'unico modo per gestire il mio file?.
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55

Re: Convalida Dati con spazio nei testi

Postdi wallace&gromit » 02/05/13 16:17

ma come...il codice è così semplice e lineare :lol: :lol: :lol:
se mi ricordo bene era stato elaborato da Ricky, quindi sarebbe meglio che intervenisse lui nella discussione.
Comunque quello che potresti fare è partire da questo file, modificando un po' i dati secondo le tue esigenze e postare il risultato che hai ottenuto.

Di vie alternative ce ne sono sicuramente parecchie, vediamo se subentra anche qualcun'altro con idee migliori.

Puoi vedere anche questo post che ho portato avanti con ricky, forse un po' più semplice, ma meno completo http://www.pc-facile.com/forum/viewtopic.php?f=26&t=97627&p=560774&hilit=convalide+successive#p560774
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: Convalida Dati con spazio nei testi

Postdi ricky53 » 02/05/13 23:52

Ciao,
ho scaricato il file e posso affermare senza ombra di dubbio: il codice non è miooooo !!!
Per vari motivi:
1. non è indentato (GRAVE perchè rende poco leggibile il codice)
2. le varibili non sono esplicative o almeno non nel mio stile.
3. gli "IF" non li scrivo così
4. ...

Comunque cerchiamo di capire cosa cosa effettivamente ti occorre e ... proviamo a cercati una soluzione.
Per questo scopo dovresti spiegare bene, con un esempio concreto, come vuoi ottenere la convalida tripla, da quali dati parti e come sono organizzati questi dati.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Convalida Dati con spazio nei testi

Postdi Anthony47 » 03/05/13 00:38

Per l' interpretazione del codice e del contesto rimando a questa discussione: viewtopic.php?p=504704#p484099
E' vero, c' e' una For each /Next non indentata; certamente lo feci apposta per confondere Ricky :D :D

Ciaaoo
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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Convalida Dati con spazio nei testi

Postdi Zoro76 » 03/05/13 07:46

Buon giorno a tutti.

Provo a spiegare allegando il file sul quale mi piacerebbe avere le convalide per rendere il tutto più semplice per me da gestire.

http://rapidshare.com/files/2358023167/ ... 02013.xlsm


Si tratta di un file per creare le fatture.
Ho 2 fogli:
- nel foglio ARTICOLI ho l'elenco di progetti da fatturare
- il foglio FATTURA è quello da compilare
Ho compilato in parte (solo 2 progetti) il foglio FATTURA per farvi vedere come vorrei che venisse compilato.
Nella colonna B ci andrà sempre e solamente il "Nr Progetto" riportato dalla colonna A del foglio ARTICOLI.
Nella colonna C invece, in maniera alternata, sulla stessa riga del Nr Progetto ci andrà la Descrizione del progetto (colonna B foglio ARTICOLI) e sotto il Livello/Solaio del progetto in questione (colonna C del foglio ARTICOLI).
Non è facile da spiegare ma nell'esempio allegato si vede penso bene.
Queste, praticamente, sono le convalide che vorrei avere:
1 - scelgo il NrProgetto (convalida1)
2 - in base al NrProgetto scelgo la Descrizione (esiste 1 solo Nr Progetto per Descrizione; nel senso che magari si può fare in modo che scegliendo ad esempio il nr IT.12.8827 (il primo in elenco cella A4) in automatico mi venga scritto a fianco il corrispettivo nome e cioè "Corso Buenos Aires")
3 - quindi identificato il progetto scelgo il "Solaio/Livello".

Per i passi che devo seguire successivamente ho creato (scopiazzando in giro) un codice che mi compila nel foglio FATTURA le colonne G e H. Questo però mi da un errore e magari più avanti vi chiedo un consiglio...:) un passo alla volta forse è meglio.
Non vorrei abusare del vostro tempo e della vostra pazienza.

Intanto grazie mille
a dopo.
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55

Re: Convalida Dati con spazio nei testi

Postdi Anthony47 » 03/05/13 13:32

Humm... con quel tipo di dati (contenuto del foglio ARTICOLI) io non lavorerei con convalida su foglio FATTURA, ma con selezione in foglio ARTICOLI di quali voci vuoi includere in fatturazione.
Ad esempio, in colonna F di Articoli inserisci y sulle righe che vuoi includere in fattura; poi con questa macro porterai in Fattura i relativi contenuti.
Codice: Seleziona tutto
Sub confatt()
Dim myRan As Range, JJ As Long

Set myRan = Application.Intersect(Sheets("ARTICOLI").UsedRange, Sheets("ARTICOLI").Range("F:F"))
'
For Each cell In myRan
bbb = cell.Row
    If cell.Value = "y" Then
        Sheets("fattura").Range("B21").Offset(JJ * 2, 0) = Sheets("articoli").Cells(cell.Row, 1)
        Sheets("fattura").Range("B21").Offset(JJ * 2, 1) = Sheets("articoli").Cells(cell.Row, 2)
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 1) = Sheets("articoli").Cells(cell.Row, 3)
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 5) = Sheets("articoli").Cells(cell.Row, 5).Value
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 6).Value = Sheets("articoli").Cells(cell.Row, 4)
        JJ = JJ + 1
    End If
Next cell
End Sub

La macro mette anche in colonna G di Articoli il numero fattura, prelevandolo da Fattura-J15; in questo modo in colonna G dovresti avere un promemoria in corrispondenza di tutte le righe che sono gia' state oggetto di fatturazione; il carattere Y in colonna F sara' rimosso manualmente quando la relativa fattura e' completata con successo.
La macro non fa nessuna verifica che il numero di item marcati come "da fatturare" stia nelle 22 righe allocate sul foglio Fattura; per questo ti farai una formula Conta.valori che conta quanti Y hai messo in colonna F, ed eventualmente segnala in rosso il superamento del limite; oppure una convalida personalizzata su colonna F che ti impedisce di mettere piu' di 11 y.

Spero che quanto proposto sia di qualche utilita'.

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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Convalida Dati con spazio nei testi

Postdi Zoro76 » 03/05/13 14:29

Ciao Anthony

direi che è spettacolare. E direi che come l'hai pensata è molto comoda e semplice.

In colonna G di Articoli però non mette nessun numero fattura.
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55

Re: Convalida Dati con spazio nei testi

Postdi Anthony47 » 03/05/13 14:34

In effetti ho pubblicato una versione intermedia della macro, quella finale e' questa:
Codice: Seleziona tutto
Sub confatt()
Dim myRan As Range, JJ As Long, Cell As Range
NumFatt = "J15"  '<<< La cella di Fattura che contiene il numero fattura
Set myRan = Application.Intersect(Sheets("ARTICOLI").UsedRange, Sheets("ARTICOLI").Range("F:F"))
'
Sheets("fattura").Range("B21").Resize(22, 6).ClearContents
For Each Cell In myRan
    If Cell.Value = "y" Then
        Sheets("fattura").Range("B21").Offset(JJ * 2, 0) = Sheets("articoli").Cells(Cell.Row, 1)
        Sheets("fattura").Range("B21").Offset(JJ * 2, 1) = Sheets("articoli").Cells(Cell.Row, 2)
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 1) = Sheets("articoli").Cells(Cell.Row, 3)
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 5) = Sheets("articoli").Cells(Cell.Row, 5).Value
        Sheets("fattura").Range("B21").Offset(JJ * 2 + 1, 6).Value = Sheets("articoli").Cells(Cell.Row, 4)
        Cell.Offset(0, 1) = Sheets("fattura").Range(NumFatt).Value
        JJ = JJ + 1
    End If
Next Cell
End Sub

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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Convalida Dati con spazio nei testi

Postdi ricky53 » 03/05/13 15:15

Ciao Anthony,
adesso si che mi piace, si legge bene ed il codice è chiaro oltre che potente. Eh,Eh !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Convalida Dati con spazio nei testi

Postdi Zoro76 » 03/05/13 15:38

Favoloso. Grazie mille
Zoro76
Utente Junior
 
Post: 95
Iscritto il: 10/03/10 10:55


Torna a Applicazioni Office Windows


Topic correlati a "Convalida Dati con spazio nei testi":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti

cron