le 18 tabelle e catalogare tutte le stringhe. Dovrei essere felice e contento? NO! Questo ciclo NON lavora sotto
le 3.000 stringhe e, di conseguenza, non posso avere le ripetizioni delle prime 20/30 estrazioni di ogni anno.
Quindi ho realizzato una macro “Sveltina” con il solo compito di riempire le tabelle con numeri e poi
interviene il potente ciclo che completa il tutto.
Quindi chiedo aiuto a tutto il Forum, se possibile, velocizzare questa mia macro “Sveltina” che è
estremamente semplice da realizzare ma molto difficile da descrivere comunque ci provo.
Ogni stringa, in colonna B, ha una sua cella personale è univoca in una delle 18 tabelle.
Per trovare la cella di appartenenza si deve “pulire” la stringa dal concorso e anno
(NA_Gr2_C-01-007tern(20) Napoli)portando così la stringa al valore di “radice”.
Questa radice viene confrontata con stringhe radice di riferimento e, trovata la stinga radice di riferimento,
si legge la cella a sx (stessa riga).
Trovata la cella di appartenenza si aggiunge/scrive +1 in cella (la cella identifica automaticamente la tabella).
E’ incasinata lo so ma descrivo ogni passo che la macro dovrebbe fare.
1a) Si deve scorrere la colonna B del foglio “Gruppi” che ci sono tutte le stringhe da catalogare.
2b) Prendere in esame la 1à stringa in B2 che è la <NA_Gr2_C-01 - 002 tern Torino>
3c) si taglia la prima parte <NA_Gr2_C-01> che è standard per tutte le stringe.
4d) si separa la ruota finale <Torino> partendo da Dx verso Sx fino al primo spazio così si evita l’interferenza dell’anno.
5e) si concatenano le due parti per il confronto <NA_Gr2_C-01 Torino>
6f) si confronta con le stringe radice del foglio “Riferimenti” range F2:F2179 (nell’esempio la F95)
7g) trovato il confronto si legge la cella a Sx (colonna E) della cella F95 e si memorizza (nell’esempio la cella K7)
8h) con la cella memorizzata (K7) si passa al foglio “Tab18” e si scrive/aggiunge 1 in K7
9i) riparte il giro con la 2à stringa di B3 del foglio “Gruppi”, ecc.
In allegato un file con tre fogli;
Un foglio “Gruppi” dove ci sono le stringhe da catalogare.
Un foglio “Riferimenti” dove sono presenti le stringhe “radice” con la rispettiva cella a Sx
Un foglio “Tab18” dove si devono scrivere i punteggi di ogni stringa.
Aggiungo che sul foglio “Tab18” è presente una bandiera che cliccandoci sopra va in esecuzione
ma mia macro “Sveltina”. Sembra che sia veloce ma non è così perché deve fare tre giri dei tre
gruppi (Gr2 Gr1 Gr0) e con 3.000 stringhe. Adesso ha solo un gruppo (Gr2) e poco più di mille stringhe.
Ringraziando anticipatamente tutti coloro che mi possono aiutare 73 ikwae
http://www.filedropper.com/7riempire18tabellerete
- Codice: Seleziona tutto
Sub a7_Sveltina_Per_Rete_Tab18()
Dim UCella As String
Dim radice As String
Dim RuFinAnno As String
Dim CL As Range
Dim CL1 As Range
Sheets("Gruppi").Select
UCella = Range("B2").End(xlDown).Address
For Each CL In Range("B2:" & UCella)
'"PULISCE" LA STRINGA PARTE INIZIALE
corpo = Mid(CL, 1, 11) 'Prende La Parte Dx [BA_Gr2_C-01]
'"PULISCE" LA STRINGA PARTE FINALE
pos = InStrRev(CL, " ") 'Da Dx Verso Sx Fino Al Primo Spazio
strlen = Len(CL) 'Per Prendere Tutte Le Ruote
RuFinAnno = Right(CL, strlen - pos) 'Con Anno E Senza Anno
'BA_Gr2_C-01 - 001 terno '(20) Milano '
'BA_Gr2_C-01 - 001 terno 'Milano '
'SI CONCATENA PER IL CONFRONTO
radice = corpo & " " & RuFinAnno
'SETTA DOVE CONFRONTARE
Set zona = Worksheets("Riferimenti").Range("F2:F2179")
For Each CL1 In zona
'TROVATA LA STRINGA DI CONFRONTO
If CL1.Value = radice Then Else GoTo 10
'Scrive/Aggiunge, In Tabella, Nella Cella Riportata A Sx Di CL1
Sheets("Tab18").Range(CL1.Offset(0, -1)).Value = _
Sheets("Tab18").Range(CL1.Offset(0, -1)).Value + 1
10
Next
Next
End Sub