Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Uniformare Stringa aggiungendo tot zeri

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

Uniformare Stringa aggiungendo tot zeri

Postdi ikwae » 31/08/20 13:16

Ciao a tutti … Ho una stringa tipo aaa dopo eee = iii Att uuu che è variabile nei campi solo delle vocali ossia nella posizione aaa può essere presente un numero di una, due e tre cifre e lo stesso per i successivi campi delle vocali. Dato che non si riesce a sapere, in anticipo, quante cifre ci sono nei campi delle vocali questo comporta che la stringa diventa una “fisarmonica” e, purtroppo, non si possono applicare le Funzioni che pretendono una posizione certa. Ho risolto parzialmente al 90% realizzando testo in colonne aggiungendo gli zeri necessari concludendo con il Concatena ma se le posizioni delle vocali esterne(a,u) sono a una cifra il testo in colonne prende anche una parte della d (dopo) o la t(Att) e di conseguenza non utilizzabile. Anche se fosse utilizzabile mi sono accorto che non è molto pratico nelle prove di conseguenza chiedo aiuto a tutto il Forum per avere una macro per uniformare la stringa per totale 26 caratteri, aggiungendo tanti zeri, compresi gli spazzi essenziali. La macro che cerco dovrebbe fare:

1) Scorrere tutta la colonna C ed individuare le stringhe interessate (si riconoscono perché hanno la scritta dopo e la scritta Att (di Attuale)

2) Intercettare la posizione aaa
Se il numero è a una cifra aggiungere due zeri a sx.
Se il numero ha due cifre aggiungere un solo zero a sx.
Se il numero è a tre cifre non fare nulla

3) Intercettare la posizione eee (solitamente è presente uno zero)
Se c’è lo zero aggiungere due zeri a sx
Se il numero è a una cifra aggiungere due zeri a sx.
Se il numero ha due cifre aggiungere un solo zero a sx.
Se il numero è a tre cifre non fare nulla

3) Intercettare la posizione iii
Se il numero è a una cifra aggiungere due zeri a sx.
Se il numero ha due cifre aggiungere un solo zero a sx.
Se il numero è a tre cifre non fare nulla

4) Intercettare la posizione uuu
Se il numero è a una cifra aggiungere due zeri a sx.
Se il numero ha due cifre aggiungere un solo zero a sx.
Se il numero è a tre cifre non fare nulla

In allegato c’è un file con due fogli uno Org con la colonna C pronta all’uso per provare l’eventuale macro di aiuto e un foglio Info con maggiori indicazioni.

Ringraziando anticipatamente tutti coloro che mi possono aiutare. 73 ikwae

http://www.filedropper.com/uniformarestringacontotzeri
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 204
Iscritto il: 27/12/17 23:14

Sponsor
 

Re: Uniformare Stringa aggiungendo tot zeri

Postdi Anthony47 » 31/08/20 22:44

Intanto il tuo messaggio mi ha ricordato di una tua vecchia richiesta che era (volutamente? :lol: :lol: ) finita nel dimenticatoio... Devo capire cosa fare ora che le ferie son finite...

Quanto al quesito corrente, mi pare che potrebbe servire allo scopo la seguente macro:
Codice: Seleziona tutto
Sub NNN()
Dim I As Long, LastC As Long, cRiga, nRiga As String
Dim Cnt3 As Long, wArr
'
Sheets("Org").Select
LastC = Cells(Rows.Count, "C").End(xlUp).Row
wArr = Cells(1, 3).Resize(LastC, 1).Value
For I = 1 To LastC
    cRiga = " " & wArr(I, 1) & " "
    If Len(cRiga) > 10 Then
reSplit:
        Cnt3 = 0
        mysplit = Split(cRiga, " ", , vbTextCompare)
        For j = 0 To UBound(mysplit)
            If IsNumeric(mysplit(j)) Then
                If Len(mysplit(j)) < 3 Then
                    cRiga = Replace(cRiga, " " & mysplit(j) & " ", " " & String(3 - Len(mysplit(j)), "0") & mysplit(j) & " ", , , vbTextCompare)
                    Cnt3 = Cnt3 + 1
                End If
            End If
        Next j
        wArr(I, 1) = Trim(Replace(cRiga, "#", " ", , , vbTextCompare))
    End If
Next I
Cells(1, 3).Resize(LastC, 1).Value = wArr
End Sub


Prova e fai sapere…
Avatar utente
Anthony47
Moderatore
 
Post: 17233
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Uniformare Stringa aggiungendo tot zeri

Postdi ikwae » 31/08/20 23:57

Gentilissimo Anthony sempre gentile e disponibile come sempre … la tua macro è perfetta veloce e precisa. Scaricata e installata ho controllato a campione e ho visto che tutta la richiesta è stata confermata. Per il dovuto riscontro aggiungo che ho caricato un file lunghissimo e ho sostituito i parametri di “dopo” e“ Att”. Con una verifica a campione ho notato che tutto va bene confermando come scritto sopra...
Per quanto riguarda
'
Anthony47 ha scritto:Intanto il tuo messaggio mi ha ricordato di una tua vecchia richiesta che era (volutamente? :lol: :lol: ) finita nel dimenticatoio... Devo capire cosa fare ora che le ferie son finite...

Ti posso dire che non avendo avuto risposta ho pensato a una (dimenticanza? :lol: ) e, come dico sempre, non sollecito mai e mi sono messo a programmare (taglia e cuci parti recuperate in giro) e in una mezz’oretta ho assemblato la macro casareccia MA!!! Ho impiegato quattro giorni ad “amalgamarla” per togliere i fastidiosi errori “gialli” e due giorni di prove per “limarla” e aggiungere codice per avere esattamente la macro che voglio. Adesso l’ho già duplicata 11 volte e la sto collaudando e appena finito il collaudo, dato che è poco felice in velocità, la volevo postare per fartela velocizzare almeno nei confronti con le celle della “cassa” … Ringraziandoti mille e mille volte per la tua disponibilità e Santa Pazienza … cordialmente ikwae
Ultima modifica di ikwae su 01/09/20 00:07, modificato 3 volte in totale.
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 204
Iscritto il: 27/12/17 23:14

Re: Uniformare Stringa aggiungendo tot zeri

Postdi Anthony47 » 01/09/20 14:22

Lieto di vedere che non ti fermi e ti rimbocchi le maniche.
Aspetto di capire se posso ancora essere utile...
Avatar utente
Anthony47
Moderatore
 
Post: 17233
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Uniformare Stringa aggiungendo tot zeri

Postdi ikwae » 01/09/20 18:06

Anthony47 ha scritto:Lieto di vedere che non ti fermi e ti rimbocchi le maniche.
Aspetto di capire se posso ancora essere utile...


NON pensarci nemmeno ... non riesco ad immaginare una vita Exliana senza supporto del Forum pc-facile!!!
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 204
Iscritto il: 27/12/17 23:14


Torna a Applicazioni Office Windows


Topic correlati a "Uniformare Stringa aggiungendo tot zeri":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti