Condividi:        

Autoassegnazione nome variabile

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

Autoassegnazione nome variabile

Postdi Black.Jack » 25/10/11 09:06

Salve a tutti!


il problema è il seguente:

in Excel ho nella stessa cella diversi numeri separati da spazio.

Io ho scritto una funzione che identifica ogni numero, però per selezionare il maggiore o minore dovrei ad ognuno di essi associare una variabile e poi gestirle con MaxValue = Application.Max(variabile1,variabile2,variabile3)


Ora come ora la funzione copia i numeri nella cella a fianco, ma vorrei che venisse riportato solo il numero maggiore o minore...

aiuti?


grazie
Win7 + Office 2010 Ita
Xp + Office 2010 Ita
Black.Jack
Utente Junior
 
Post: 93
Iscritto il: 23/06/10 08:40

Sponsor
 

Re: Autoassegnazione nome variabile

Postdi Flash30005 » 25/10/11 09:21

E' proprio necessario avere tutti i numeri in una unica cella?
Sai che con "testo in colonna" e separatore Spazio potresti avere automaticamente un numero per ogni cella?

comunque ti invio la macro per la tua esigenza

Codice: Seleziona tutto
Sub MaxV()
UR = Range("A" & Rows.Count).End(xlUp).Row
For RR = 1 To UR
    MV = 0
    Str1 = Range("A" & RR).Value
    LStr = Len(Str1)
    For LL = 1 To LStr
        If Mid(Str1, LL, 1) = " " Then
            ValE = ValS
            If Val(MValE) < Val(ValE) Then MValE = ValE
            ValS = ""
GoTo SaltaLL
        End If
    ValS = ValS & Mid(Str1, LL, 1)
SaltaLL:
    Next LL
    Range("B" & RR).Value = MValE
Next RR
End Sub


Correggi la colonna se non è quella da me usata "A" (input dati) e "B" (output massimo valore)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Autoassegnazione nome variabile

Postdi Anthony47 » 25/10/11 12:52

in Excel ho nella stessa cella diversi numeri separati da spazio.

Io ho scritto una funzione che identifica ogni numero, però per selezionare il maggiore o minore dovrei ad ognuno di essi associare una variabile e poi gestirle con MaxValue = Application.Max(variabile1,variabile2,variabile3)

Puoi pubblicare il codice della funzione che hai creato?

Per quanto riguarda il max, potresti usare questa funzione
Codice: Seleziona tutto
Function MaxStr(Rifer As Range) As Double
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=93276
'restituisce il max in una stringa
'es di uso: =maxstr(A2)
'
Dim Separ
Separ = Split(Rifer, " ")
For I = LBound(Separ, 1) To UBound(Separ, 1)
    If Val(Replace(Separ(I), ",", ".")) > MaxStr Then MaxStr = Val(Replace(Separ(I), ",", "."))
Next I
End Function

Poi in una cella userai una formula tipo =maxstr(A2)

Guarda anche il messaggio di Flash sopra.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Autoassegnazione nome variabile

Postdi Flash30005 » 25/10/11 14:52

La funzione di Anthony funziona perfettamente (non c'erano dubbi)

Invece la mia macro aveva un bug che ho corretto

Codice: Seleziona tutto
Sub MaxV()
Columns("B:B").ClearContents
UR = Range("A" & Rows.Count).End(xlUp).Row
For RR = 1 To UR
    MValS = 0
    ValS = ""
    Str1 = Range("A" & RR).Value
    LStr = Len(Str1)
    For LL = 1 To LStr
     If LL = LStr Then
     ValS = ValS & Mid(Str1, LL, 1)
     If MValS < Val(ValS) Then MValS = Val(ValS)
     End If
        If Mid(Str1, LL, 1) = " " Then
            If MValS < Val(ValS) Then MValS = Val(ValS)
            ValS = ""
GoTo SaltaLL
        End If
    ValS = ValS & Mid(Str1, LL, 1)
SaltaLL:
    Next LL
    Range("B" & RR).Value = MValS
Next RR
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Autoassegnazione nome variabile":


Chi c’è in linea

Visitano il forum: raimea e 29 ospiti

cron