Condividi:        

problema con input box e variabile in somma

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

problema con input box e variabile in somma

Postdi sandrin81a » 14/07/13 05:44

Ciao a tutti,

avrei un problemino con la macro qui sotto..
vorrei aprire un file, formattarlo come piace a me e poi sommare a due colonne due variabili, copiare il risultato sulle colonne di origine, e salvare il file…

il problema è che vorrei utilizzare inputbox per immettere le due variabili, ma sembra che excel non le riconosca come numeri, infatti il risultato della somma è un errore..
ho cercato la soluzione, ma devo ammettere che non ci ho capito molto..


grazie a tutti in anticipo!

MACRO:


Sub Macro1()
'
' Macro1 Macro
'
' Scelta rapida da tastiera: CTRL+Q
'
Dim e As Variant
Dim n As Variant
Dim lastrow As Long

e = Application.InputBox("Inserisci Shift Easting")
n = Application.InputBox("Inserisci Shift Northing")
last row = Cell(Rows.Count, 1).End(xlUp).Row

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
TrailingMinusNumbers:=True


Range("F1").Select
ActiveCell.Formula = "=SUM(RC[-3]+ e)"
Range("G1").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-3]+ n)"
Range("F1").Select
Selection.AutoFill Destination:=Range("F1:F" & lastrow&)
Range("G1").Select
Selection.AutoFill Destination:=Range("G1:G" & lastrow&)
Range("F1:G" & lastrow&).Select
Selection.Copy
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("F:G").Select
Application.CutCopyMode = False
Selection.ClearContents

NOMEFILE$ = ActiveWorkbook.FullName '& ".csv"
lun = Len(ActiveWorkbook.FullName)
NOME = Left(NOMEFILE, (lun - 3))
NOMEFILE$ = NOME & "csv"
ActiveWorkbook.SaveAs Filename:= _
NOMEFILE _
, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=False
End Sub

ESEMPIO FILE
13/06/2013,22:39:22,9479335.03,4435234.31,49657.223
13/06/2013,22:39:22,9479335.03,4435234.31,49657.245
13/06/2013,22:39:22,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.223
13/06/2013,22:39:23,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.223
13/06/2013,22:39:23,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.223
13/06/2013,22:39:23,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.245
13/06/2013,22:39:23,9479335.03,4435234.31,49657.223
13/06/2013,22:39:23,9479335.03,4435234.31,49657.223
sandrin81a
Utente Junior
 
Post: 22
Iscritto il: 14/07/13 00:53

Sponsor
 

Re: problema con input box e variabile in somma

Postdi sandrin81a » 14/07/13 06:02

P.S. i valori da inserire potrebbero essere anche negativi...
sandrin81a
Utente Junior
 
Post: 22
Iscritto il: 14/07/13 00:53

Re: problema con input box e variabile in somma

Postdi Flash30005 » 14/07/13 08:49

Ciao Sandrin81a e benvenuto/a nel Forum

Non entro in merito a ciò che fa la macro ma se il tuo problema è solo l'inpbox allora potresti sostituire le due righe (variabili di inserimento) con queste
Codice: Seleziona tutto
e = CDec(Application.InputBox("Inserisci Shift Easting"))
n = CDec(Application.InputBox("Inserisci Shift Northing"))


che convertono un numero-stringa in numero

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: problema con input box e variabile in somma

Postdi Anthony47 » 14/07/13 15:16

Il mio suggerimento e' di chiedere all' inputbox di restituirti un numero, usando l' argomento type e impostandolo a 1; in assenza di indicazioni ti restituisce una stringa, che poi dovresti convertire con una funzione di conversione, come ha fatto Flash.
Quindi userai, ad esempio:
Codice: Seleziona tutto
e = Application.InputBox("Inserisci Shift Easting", , , , , , , 1)
Il vantaggio di questo metodo e' che se l' utente inserisce un valore non numerico l' istruzione Inputbox lo rifiuta e ne richiede uno corretto, mentre la funzione di conversione avrebbe restituito un run-time error.

Ma il problema non e' solo quello... Infatti se ispezioni la formula inserita ad esempio in F1 essa e' =SOMMA(C1+ e), mentre immagino che avrebbe dovuto essere del tipo =SOMMA(C1+ 33,5)
Infatti dovresti calcolare la prima formula come
Codice: Seleziona tutto
ActiveCell.Formula = "=SUM(RC[-3]+" & e & ")"


Potresti anche valutare l' ipotesi di inserire i numeri prelevati con gli Inputbox in due celle, poi una a una copiarle e fare un Paste special -Valore -Operazione=Addiziona. Tramite "Registra nuova macro" ottieni il relativo codice vba, da modificare poi per usare LastRow nel range target.

Infine assumo che i tuoi regional settings prevedano che il separatore decimale sia il "punto" (e non la virgola); perche' se cosi' non fosse allora i risultati del tuo TextToColumns sarebbero "stringhe" (e non numeri) per cui la Somma fallirebbe anche con la formula corretta.
Se il tuo separatore decimale fosse la virgola, dovrai aggiungere, alle opzione della TextToColumns, DecimalSeparator:=".", ThousandsSeparator:=","

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

Re: problema con input box e variabile in somma

Postdi sandrin81a » 14/07/13 23:50

Grazie mille per i suggerimenti! Preziosissimi, entrambe le soluzioni mi mi tornano utili!
Avevo aggirato il problema facendo scrivere le due variabili su due caselle e poi puntando queste celle per la somma.. Ma avevo l'impressione di fare qualcosa in più..

Grazie ancora
Alessandro
sandrin81a
Utente Junior
 
Post: 22
Iscritto il: 14/07/13 00:53


Torna a Applicazioni Office Windows


Topic correlati a "problema con input box e variabile in somma":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti