› Sviluppare funzionalita su Microsoft Office con VBA › Cambio formattazione
-
AutoreArticoli
-
Ciao a tutti ragazzi, avrei un piccolo problema.
Quando eseguo la macro allegata nella colonna H del foglio ordine rame viene modificata la formattazione in personalizzata, in particolare viene fuori una data, mentre essendo dei valori dovrebbe rimanere come numero.
Grazie a chi mi aiuterà
Sub SOMMA() Dim rng As Range, r As Range Dim j As Integer Worksheets("Ordine Rame").Select Range("L2").FormulaR1C1 = "=RC[1]+RC[2]" Range("L2").AutoFill Destination:=Range("L2:L29"), Type:=xlFillDefault Range("K2:K29").Value = Range("L2:L29").Value Range("M2:M29").Value = Range("L2:L29").Value Set r = Range("B35:BA35").Find(What:=Range("E11").Value, LookIn:=xlValues, LookAt:=xlWhole) If Not r Is Nothing Then For j = 1 To Range("AM2").End(xlDown).Row - 1 Cells(r.Row + j, r.Column) = Cells(r.Row + j, r.Column) + Range("AM" & j + 1) Next j End If With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(1, 0) = rng.Offset(1, 0) + .Range("H2") 'somma alla cella sottostante il valore End With With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(5, 0) = rng.Offset(5, 0) + .Range("N2") 'somma alla cella sottostante il valore End With With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(8, 0) = rng.Offset(8, 0) + .Range("O2") 'somma alla cella sottostante il valore End With With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(11, 0) = rng.Offset(11, 0) + .Range("P2") 'somma alla cella sottostante il valore End With With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(14, 0) = rng.Offset(14, 0) + .Range("Q2") 'somma alla cella sottostante il valore End With Call EsportaDati Worksheets("MASCHERA RICERCA").Select Range("A1").Select MsgBox ("Quantità Filo Aggiunta") Set rng = Nothing: Set r = Nothing Range("r8") = Range("k6") End SubScusa Alex eccolo
Allegati:
You must be logged in to view attached files.Allora il problema è nella routine EsportaDati che tu richiami verso la fine. In quella routine c'è questa parte di codice:
...... ...... ...... With Sheets("Elenco Ordini") urNR = .Cells(Rows.Count, "A").End(xlUp).Row For i = LBound(arr) To UBound(arr) .Cells(urNR + 1, i + 1).Value = wsMR.Range(arr(i)).Value Next i .Range("A" & urNR + 1 & ":" & "H" & urNR + 1).Borders.LineStyle = xlContinuous Columns("H").NumberFormat = "d-mmm" With Columns("A:H") .Font.Name = "Calibri" .Font.Size = 10 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End With ...... ...... ......Questa linea di codice:
Columns("H").NumberFormat = "d-mmm"fa esattamente quello che tu sottolinei come problema. Adesso bisogna capire perché è presente e che utilità dovrebbe avere. Almeno...per quanto mi riguarda...nessuna.Poi altra cosa...sempre nella routine SOMMA, non serve applicare il FIND ogni volta. Ti basta semplificare così:
With Sheets("PROVA CARICHI") Set rng = .Range("B35:BA35").Find(What:=.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole) 'cerca la settimana rng.Offset(1, 0) = rng.Offset(1, 0) + .Range("H2") 'somma alla cella sottostante il valore rng.Offset(5, 0) = rng.Offset(5, 0) + .Range("N2") 'somma alla cella sottostante il valore rng.Offset(8, 0) = rng.Offset(8, 0) + .Range("O2") 'somma alla cella sottostante il valore rng.Offset(11, 0) = rng.Offset(11, 0) + .Range("P2") 'somma alla cella sottostante il valore rng.Offset(14, 0) = rng.Offset(14, 0) + .Range("Q2") 'somma alla cella sottostante il valore End WithGrazie mille al momento funziona tutto, continuo ad utilizzarla e vedo se riscontro qualche problema, ma non credo
Ho provato a modificare un codice che avevo ed ho inserito questo, funziona perfettamente ma quando si apre la finestra di stampa se stampo il foglio tutto ok se invece clicco annulla mi va in errore....
MsgBox "Dati copiati", vbInformation, " Copia dati" Application.Dialogs(xlDialogPrint).Show Worksheets("MASCHERA RICERCA").Select Range("A1").SelectHo provato a modificare un codice che avevo ed ho inserito questo, funziona perfettamente ma quando si apre la finestra di stampa se stampo il foglio tutto ok se invece clicco annulla mi va in errore....
Questo però è un altro problema. Bisogna aprire un altro argomento al riguardo.
-
AutoreArticoli
