| | Post: 394 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
26/03/2017 17:55 | |
Ciao a tutti.
Chiedo un aiuto per una modiifca al workbook allegato.
Ad ogni "stampa foglio" in numero progressivo aumenta e vorrei aggiungere che il totale di questa stampa
venga aggiunto in progressione nel foglio "conteggio" partendo da B3.
Ad ogni azzeramento con "azzera num. prog. e conteggio" deve ricomciare da B3 per ogni inserimento.
Spero di essermi spiegato.
john
---------------
excel 2007 |
|
| | Post: 395 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
27/03/2017 18:22 | |
Ciao a tutti,
forse non mi sono spiegato bene?
john ---------------
excel 2007 |
| | Post: 1.144 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
27/03/2017 19:27 | |
Ciao
in effetti non è chiaro. Cosa vuoi nel foglio conteggio il numero riportato in M2 del foglio stampa? quindi per esempio in B3 4 poi in B4 5, poi in B5 6 ecc (che poi si azzereranno?).
Inoltre poiché il contatore parte da 1, dopo la prima stampa, in M2 c'è 2. Che ci vuoi in conteggi 1 o 2 ?
saluti
[Modificato da dodo47 27/03/2017 19:31] Domenico
Win 10 - Excel 2016 |
| | Post: 396 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
27/03/2017 19:57 | |
Ciao domenico,
mi sono espresso male.
Ho trovato nel mio database questa macro che non è proprio perfetta:
Option Explicit
Sub copia_articolo()
Dim ultimariga As Range
Foglio1.Range("F46").Select
Selection.Copy
Foglio3.Select
ultimariga = Range("B" & Rows.Count).End(xlUp).Row
Cells(ultimariga + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
che copia la cella F46 del Foglio1 nella prima cella libera della colonna B del Foglio3 ma dà errore perchè ci sono delle celle unite nel Foglio3.
L'incolla nel Foglio3 deve partire dalla cella B3.
Allego l'esempio con la nuova macro.
john ---------------
excel 2007 |
| | Post: 3.789 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
28/03/2017 08:12 | |
le celle unite non piacciono al VBA
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1.146 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
28/03/2017 09:50 | |
Ciao
specie se al posto di dichiarare Long ultimariga lo dichiari "range" !!
Modifico adattando il tuo modo di ragionare che non è certo un esempio di programmazione:
Sub copia_articolo()
Dim ultimariga As Long '<<<<<<<<<<<<<
Foglio1.Range("F46").Select
Selection.Copy
Foglio3.Select
ultimariga = Range("B" & Rows.Count).End(xlUp).Row
If ultimariga = 1 Then ultimariga = 3 Else ultimariga = ultimariga + 1
Cells(ultimariga, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Saluti
[Modificato da dodo47 28/03/2017 09:50] Domenico
Win 10 - Excel 2016 |
| | Post: 3.790 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
28/03/2017 11:24 | |
john, dichiarare tutte le variabili è una prassi molto corretta e consigliata, però occorre avere le idee ben chiare, nel dubbio è meglio non dichiararle eliminando option explicit.
Nel tuo caso per definire
ultimariga = Range("B" & Rows.Count).End(xlUp).Row
hai usato il metodo row, quindi ottieni un numero e non un range. [Modificato da patel45 28/03/2017 11:25]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
|
|