| | 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 [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
[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
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 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] |
|
|