| | Post: 29 | Registrato il: 22/04/2017
| Città: UDINE | Età: 58 | Utente Junior | Excel 2016 | | OFFLINE | |
|
14/03/2024 00:15 | |
Ci ho provato ma non riesco ad elaborare un codice VBA che da una stringa ad esempio del tipo:
4 - RO (Adulti: 3 Bambini: 2), 6 - RO (Adulti: 4), 10 - RO (Adulti: 1 Bambini: 2), 11 - RO (Adulti: 3)
vengano estratti in una colonna di un foglio excel i soli numeri 4 - 6 - 10 - 11
Rappresentano il numero di una camera, seguita dal trattamento (Room Only) che nel mio caso è sempre RO e dalle persone che vanno nella camera.
Tenete presente che la stringa di solito è più breve ed ha solo una camera, rare volte potrebbe essere più lunga nel caso di prenotazioni di gruppi.
Nel foglio excel ci sono più prenotazioni e quindi più righe con una cella contenete una stringa simile.
Spero di essermi spiegato.
Vi ringrazio fin d'ora del vostro aiuto.
Luca
[Modificato da LucaT. 14/03/2024 00:31] |
|
| | Post: 1.397 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | ONLINE |
|
14/03/2024 00:54 | |
Presumendo che la lista abbia inizio da A1 e che il risultato vada messo in colonna B puoi provare con questa mia macro. Eventualmente adatta i range al layout del tuo progetto. Option Explicit
Sub EstraiNumeri()
Dim nRiga As Long 'numero riga in elaborazione
Dim sTesto As String 'stringa testo da elaborare
Dim sMatr As Variant 'stringa matrice dopo la divisione
Dim sNum As String 'stringa numeri estrapolati
Dim x As Long 'contatore generico
Dim pVirg As Long 'posizione della virgola
For nRiga = 1 To Cells(Rows.Count, "A").End(xlUp).Row
sNum = ""
sTesto = Cells(nRiga, "A")
sMatr = Split(sTesto, " - RO ")
sNum = sNum & sMatr(0)
For x = 1 To UBound(sMatr) - 1
pVirg = InStr(sMatr(x), ",")
sNum = sNum & " -" & Right(sMatr(x), Len(sMatr(x)) - pVirg)
Next x
Cells(nRiga, "B") = sNum
Cells(nRiga, "B").NumberFormat = "@"
Next nRiga
End Sub [Modificato da rollis13 14/03/2024 01:16]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 3.317 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | OFFLINE |
|
14/03/2024 01:01 | |
ciao
da tirare a destra se li vuoi in un riga
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
da tirare in basso se vuoi in una colonna
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.RIGA($A1)&"]");"")
se vuoi usare RO come punto fisso
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[2]='RO']["&RIF.COLONNA(A$1)&"]");"")
come noti ho messo 2 al posto di 1 perchè hai sempre - prima del RO
perchè diavolo vedo una riga centrale nella formula ? [Modificato da federico460 14/03/2024 01:12] |
| | Post: 1.232 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | ONLINE |
|
14/03/2024 08:51 | |
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
qui ho fatto un semplice copincolla [Modificato da L2018 14/03/2024 08:54]
LEO
https://t.me/LordBrum |
| | Post: 3.318 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | OFFLINE |
|
14/03/2024 09:36 | |
ciao
prova colore
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
bene si è sistemato [Modificato da federico460 14/03/2024 09:36] |
| | Post: 1.233 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | ONLINE |
|
14/03/2024 10:23 | |
federico460, 14/03/2024 09:36:
ciao
prova colore
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
=SE.ERRORE(FILTRO.XML(""&SOSTITUISCI($A1;" ";"")&"";"//s[following::*[1]='-']["&RIF.COLONNA(A$1)&"]");"")
bene si è sistemato
se si è sistemato ok, ma io non ho mai potuto formattare testi in colore, perchè dopo aver evidenziato un testo, il tentativo di cambiare colore e/o font mi toglie l'evidenziazione, comunque ok
LEO
https://t.me/LordBrum |
| | Post: 3.319 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | OFFLINE |
|
14/03/2024 10:34 | |
ciao
Fulvio
ti piace la formula?
è la stessa cosa di TESTO.PRECEDENTE() del 365
l'ho imparata a forza di guerre (scherzose) con Terio
e pensare che è presente anche nelle versioni utilizzate
durante le guerre puniche
[Modificato da federico460 14/03/2024 10:37] |
| | Post: 1.962 | Registrato il: 27/07/2010
| Utente Veteran | | | OFFLINE |
|
14/03/2024 12:59 | |
federico460, 14/03/2024 10:34:
ciao
...
e pensare che è presente anche nelle versioni utilizzate
durante le guerre puniche
Non mi pare che FILTRO.XML sia presente in Excel 2010, quindi direi " e pensare che è presente anche nelle versioni utilizzate durante il covid" 😊
Bye!
scossa
scossa's web site
___
Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| | Post: 3.320 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | OFFLINE |
|
14/03/2024 13:17 | |
ciao scossa
parte dal 2013......diciamo dal risorgimento😀 |
|
|