Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-02-2006, 11:00   #1
massimo78
Senior Member
 
L'Avatar di massimo78
 
Iscritto dal: Jul 2001
Città: Lido di Ostia
Messaggi: 1612
[VBA] Alberi binari su Excel

Ho un applicazione su Excel strutturata nel seguente modo :


dove abbiamo :

La colonna ID contenente tutti gli identificativi (rami e fogliei).
La colonna Parent_ID che contiene gli id dei rispettivi rami, e G dove si trova il ramo.


Il mio problema è questo :

Devo fare una funzione che dato un ID rimuova il ramo e tutte le foglie sottostanti.

Da qui ho realizzato 2 Sub di cui una ricorsiva.
La prima Remove_Leaf che altro non fa che eliminare la riga contenente una foglia.

Codice:
Private Sub Remove_Leaf(rmv_gate)
    i = 1
    With Worksheets("FTA")
        While .Range("id").Cells(i).Value <> rmv_gate And .Range("id").Cells(i).Value <> ""
            If .Range("id").Cells(i).Value = rmv_gate Then
               .Range("id").Cells(i).Select
                Selection.EntireRow.Delete
            End If
            i = i + 1
        Wend
        Worksheets("FTA").Calculate
    End With
End Sub
e l'altra Remove_Node che verifica se è una foglia, se lo è la elimina, altrimenti continua a scorrere i nodi del ramo interessato e si autorilancia.

Codice:
Public Sub Remove_Node(rmv_gate As String)
    i = 1
    ' se è una foglia toglila con il Remove_Leaf
    If IsLeaf(rmv_gate) Then
        Remove_Leaf (rmv_gate)
        Exit Sub
    Else
        With Worksheets("FTA")
            ' cerca tutte le foglie che hanno come id padre l'id del nodo
            While (.Range("parent_id").Cells(i).Value <> "")
                ' se tra gli id padre trovo una G e il corrispettivo id è quello del nodo, elimino l'intera riga
               If (.Range("parent_id").Cells(i + 1).Value = "G") And (.Range("id").Cells(i + 1).Value = rmv_gate) Then
                    .Range("id").Cells(i + 1).Select
                    Selection.EntireRow.Delete
                End If
                ' se la cella corrente è uguale all'id del nodo richiama ricorsivamente Remove_Node
                If (.Range("parent_id").Cells(i).Value = rmv_gate) Then
                    Remove_Node (.Range("id").Cells(i).Value)
                End If
                i = i + 1
            Wend
        End With
    End If
End Sub
Ovviamente la funzione IsLeaf funziona correttamente...
il problema è che se al posto di quella riga (nella Remove_Node) inserisco una MsgBox funziona correttamente e mi riporta esattamente TUTTI gli id da rimuovere.
Se la lascio così non funziona
Al primo nodo che rimuove si ferma... come se facesse un exit sub.

qualcuno mi può aiutare ?
Che cos'ha la Selection.EntireRow.Delete che non va ?
__________________
|Mac Mini i7 2,6 GHz 16 GB - OS Yosemite|
massimo78 è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2006, 07:14   #2
massimo78
Senior Member
 
L'Avatar di massimo78
 
Iscritto dal: Jul 2001
Città: Lido di Ostia
Messaggi: 1612
up
__________________
|Mac Mini i7 2,6 GHz 16 GB - OS Yosemite|
massimo78 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
Oracle e Astrazeneca insieme per lo svil...
Anthropic e la quotazione: cosa emerge d...
Condanna milionaria per il sessantottenn...
HONOR Robot Phone a Movieland: abbiamo g...
Google Messaggi introduce la Protezione ...
Vera Rubin, NVIDIA aggiorna le specifich...
Google Health 5.11 amplia il rilevamento...
Legacy Games chiude dopo quasi 30 anni: ...
iPhone Duo avvia le automazioni quando l...
Tomb Raider: Legacy of Atlantis, rivelat...
Instagram arriva su Apple TV con un'app ...
Meta lancia un'offerta azionaria da 35 m...
L'Italia sfida i big dei semiconduttori:...
Chernobyl fa parlare ancora di sé: il bi...
Kioxia Exceria G3 4TB, il PCIe 5.0 che p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v