Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Tavola della Verità

Ultimo Aggiornamento: 15/05/2020 16:13
Post: 5.918
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
14/05/2020 17:18

Ciao anche io ogni tanto chiedo aiuto a tutti, sto combattendo da giorni e non ne vengo a capo devo costruire una tabella delle verità, cioè controllare se una cella è vuota o piena ma con alcune caratteristiche, inserisco un esempio.



non so se ho commesso qualche errore nella tabella ma penso di aver spiegato bene il concetto

non parlo del testo che ce nella cella solo se è vuota o piena, iniziando dall'alto se è piena si inserisce 1 fino al prossimo valore e poi si incrementa di una unità, cosi come per le colonne successive

ma come vedete scendendo alcuni valori vengono incrementati, ma sono dipendenti dalla colonna precedente fintanto che la colonna precedente mantiene lo stesso valore la colonna incrementa sempre di 1 ma come la colonna precedente incrementa anche lei il valore incomincia ancora da 1 ad incrementare.

lo stesso dicasi per tutte le colonne.

con le formule ci ho provato ma conoscete il mio handicap ma non riesco nemmeno con il VBA, mi ingarbuglio troppo, potreste darmi una soluzione con formule o VBA.

allego anche il file, il risultato voluto è fatto a mano per far comprendere il problema.

Ciao By Sal [SM=x423051]
[Modificato da by sal 14/05/2020 18:08]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
14/05/2020 17:54

Scusami by sal, sarò tonto mà non capisco...
Riga2 =pippo,pippo,pippo,pippo,vuota,vuota
In H2:M2 (non vedo formule) che mi "dica" giusta?
Spieghi meglio il problema che riscontri?
[Modificato da ABCDEF@Excel 14/05/2020 18:03]
Post: 5.918
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
14/05/2020 18:12

Ciao come ho detto non ci sono formule, il risultato l'ho scritto a mano, per far vedere quale risultato vorrei ottenere.

mi sono anche accorto di alcune incongruenze di quello che ho detto ho modificato il file con i risultati giusti che vorrei, almeno spero



in parole povere se si scorre la tabella per colonna cioè prima colonna L1 si parte piena quindi 1 a scorrere in basso fino ad "A16" e si incrementa di 1 quando trovo la cella piena.
alla seconda colonna stesso discorso piena =1 fino ad "A16" ma visto che è cambiata la numerazione di colonna 1 si ricomincia da 1
terza colonna fino ad "A6" 1 poi si incrementa per la cella piena e cosi di seguito finche è vuota si mantiene il numero quando è piena si incrementa il numero successivo ma tenendo conto della colonna precedente perche se cambia numero ricomincia da 1

è in intreccio di successioni

ed ecco il file corretto.

Ciao BY Sal [SM=x423051]

[Modificato da by sal 14/05/2020 18:26]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 763
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
14/05/2020 18:34

Buonasera
Bisognerebbe capire la logica....si deve lavorare per righe o colonne??
Poi perché prendendo in esame L1 e L2 nella tabella di imput sono praticamente uguali ma nell output per L1 hai 14 1 è 8 2 ( e ci si può arrivare) ma per L2 sono tutti 1???
Se magari spieghi bene il ragionamento si può provare a fare una formula

EDIT...leggo ora il post
[Modificato da DANILOFIORINI 14/05/2020 18:35]
Post: 2.820
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
14/05/2020 18:50

l'immagine del post #3 è diversa dal file.......




[Modificato da dodo47 14/05/2020 18:50]
Domenico
Win 10 - Excel 2016
14/05/2020 20:39

Forse ho capito...
Intendi dire che riga7, siccome c'è un dato in C7, la conta passa da xx1xxx ad xx2xxx ??? Pure in riga16 da 1xxxxx ad 2xxxxx, dopo fare lo stesso con colonne B:F ???
Post: 5.920
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
15/05/2020 08:58

Chiedo scusa a tutti vi sto facendo scervellare, ho eliminato il post che avevo inserito stamattina con spiegazioni più dettagliate e di più ad ABCDE.. che mi ha già risposto sull'argomento che avevo aggiornato.

mi sono reso conto del mio falso problema, la senilità avanza, per avere un codice unico basta formattare la cella con "000000" e mettere una numerazione progressiva, ed avrò le mie belle 6 posizioni con il codice unico.

un saluto e grazie per l'impegno, ritengo chiuso il problema

Ciao By Sal [SM=x423051] [SM=x423054] [SM=x423054]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 44
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
15/05/2020 12:40

Anche se non ho risposto a questo punto sono curioso di vedere la soluzione che hai trovato. la puoi postare?
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
15/05/2020 13:58

Pure io sono curioso, pensavo ad un ciclo for
Per adesso "non mi viene", forse se ci dormo (sopra) stanotte
Post: 5.922
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
15/05/2020 15:05

Ciao la metto per curiosità, ma è talmente banale che me ne vergogno.

Ho scritto 1 nella prima e 2 nella seconda cella ed ho trascinato in basso.

poi ho formattato l'intervallo in personalizzato con "000000".



Ciao By Sal [SM=x423051] [SM=x423054]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
15/05/2020 16:13

Se la regola che quando si "somma tutte le colonne a destra" tornano a zero è categorica. I risultati sono differenti dal post1 e post3
Sub conta2()
Dim x, y, ur, w, SS, tot
ur = 23 'Range("A" & Rows.Count).End(xlUp).Row
If ur > 1 Then Range("O2:T" & ur) = ""
For y = 1 To 6
    If Cells(2, y) <> "" Then Cells(2, 14 + y) = 1 Else Cells(2, 14 + y) = 0
Next y
SS = False
For x = 3 To ur
    For y = 1 To 6 ' Step -1
        If Cells(x, y) = "" = Cells(x - 1, y) = "" Then
            Cells(x, 14 + y) = Cells(x - 1, 14 + y)
            'Application.WorksheetFunction.Max(Range(Cells(2, 14 + y), Cells(x - 1, 14 + y)))
        ElseIf Cells(x, y) = "" And Cells(x - 1, y) <> "" Then
            tot = Application.WorksheetFunction.CountA(Range(Cells(x, y + 1), Cells(x, 6)))
            If tot > 0 Then
                Cells(x, 14 + y) = Cells(x - 1, 14 + y)
                'Application.WorksheetFunction.Max(Range(Cells(2, 14 + y), Cells(x - 1, 14 + y)))
            Else
                Cells(x, 14 + y) = 0
            End If
        ElseIf Cells(x, y) <> "" And Cells(x - 1, y) = "" Then
            Cells(x, 14 + y) = Cells(x - 1, 14 + y) + 1
            'Application.WorksheetFunction.Max(Range(Cells(2, 14 + y), Cells(x - 1, 14 + y))) + 1
            SS = True
        ElseIf Cells(x, y) = Cells(x - 1, y) Then
            Cells(x, 14 + y) = Cells(x - 1, 14 + y)
            'Application.WorksheetFunction.Max(Range(Cells(2, 14 + y), Cells(x - 1, 14 + y)))
        End If
        If SS = True Then
            For w = y + 1 To 6
                If Cells(x, w) = "" Then
                    Cells(x, 14 + w) = 0
                Else
                    Cells(x, 14 + w) = 1
                End If
            Next w
            SS = False
            Exit For
        End If
    Next y
Next x
MsgBox "fatto"
End Sub
[Modificato da ABCDEF@Excel 17/05/2020 13:51]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:05. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com