Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Range BU Dati acquisiti non corretti

Ultimo Aggiornamento: 13/05/2020 16:09
Post: 214
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
17/04/2020 12:28

Buon giorno Forum .All'interno del foglio all'esecuzione della macro
ho un errore che non riesco a risolvere.In pratica nel
foglio1 ho delle date con dei numeri,lo scopo del codice è di ordinare le righe in ordine crescente per data
dal foglio1 al foglio2 ovviamente con i numeri.L'ordine delle date viene copiato perfettamente ma i numeri non sono riportati correttamente.Il foglio2 e stato già lanciato con la macro ho sottolineato in rosso gli errori e in verde le righe giuste.Grazie
Matteo
[Modificato da gattodimarmo1980 17/04/2020 12:30]
Post: 1.294
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
19/04/2020 09:17

ciao a tutti,

ciao Matteo

prova,
ciao
Frank

vb
Sub aggiorna()
Dim Ur As Long

Ur = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Foglio2").Range("A1:U" & Ur).ClearContents

Ur = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Foglio1").Columns("A:U").Copy Sheets("Foglio2").Range("A1")

With Sheets("Foglio2")
ActiveWorkbook.Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Foglio2").Sort
        .SetRange Range("A1:U" & Ur)
        .Apply
    End With
End With
    
End Sub







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 216
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
19/04/2020 11:23

Perfetto Taimon, grazie Matteo.
Post: 252
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
01/05/2020 17:49

Buona sera è tre giorni che provo a riodinare le righe in base ai mesi ma non ci riesco e devo chiedervi a voi.Ci sono due macro all'interno una è di Tanimon, e una l'ho fatta io modificando una macro che avevo già utilizzato in passato,con i consigli di ABCDEF@Excel in seguito alla discussione
https://www.freeforumzone.com/d/11684671/Filtrare-per-mesi-con-macro/discussione.aspx.
Saluto nell'occasione ABCDEF@Excel e spero che stia sempre in questo forum in cui anchi'o sono cresciuto, non è il fatto
di chiedere un post chiavi in mano, avevo promesso a me stesso che non avrei più postato argomenti riguardo il gioco e lo faccio ora perché è una discussione già avviata volevo precisare che io sto imparando con l'excel diversi argomenti e non me ne capacitò da tre giorni ripeto ,di questa macro chè ho all'interno perchè sono sicuro che un tempo funzionava ed ora non funziona più la macro è chiamata Sub ordineMIO()
ho provato ma non riesco in tutti modi.L'0rdine finale è Anni dal meno recente a il piu recente quindi mesi da gennaio a dicembre.Alla riga 3575 ho un range con più valori e ho studiato che le formule di data di Microsoft Excel possono utilizzarzi solo con le date immesse a partire dal 1/1/1900 . A disposizione Matteo


Post: 2.759
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
02/05/2020 10:48

ciao
lasciamo perdere per il momento il fatto che la tua macro (sub OrdineMIO) non funziona.

Se funzionasse, il tuo codice ordinerebbe prima per MESE e poi per ANNO.

Ora qui dici il contrario:
".....L'0rdine finale è Anni dal meno recente a il piu recente quindi mesi ...."

Ciò premesso, come hai notato, le date prima del 1900 excel non le considera date, ma semplici stringhe.

Una rapida soluzione sarebbe quella di aggiungere i col A del foglio1 una formula che aggiunge 1000 anni a tutte le date. In tal modo il 1800 diverrà 2800, il 1900 2900, etc etc. in modo che excel riconosca le date come tali.

Quindi in colonna A (vuota in quanto aggiunta) ci scrivi:

=SE(VAL.NUMERO(B1);DATA(ANNO(B1)+1000;MESE(B1);GIORNO(B1));DATA(DESTRA(B1;4)+1000;STRINGA.ESTRAI(B1;4;2);SINISTRA(B1;2)))

e trascini per tutta la colonna.

Copi incolli i valori nel foglio2 e poi farai il sort come ti pare (ovviamente da col. A a col. V.


saluti






[Modificato da dodo47 02/05/2020 12:25]
Domenico
Win 10 - Excel 2016
Post: 1.318
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
02/05/2020 13:42

Re:
ciao a tutti [SM=x423028]

ciao Matteo,


gattodimarmo1980, 01/05/2020 17:49:

Ci sono due macro all'interno una è di Tanimon, e una l'ho fatta io A disposizione Matteo




anche se probabilmente ne hai preso spunto, nel tuo file,
io non vedo la macro che ti avevo passato in forum.

Morale:
copia ed incolla, è utile ma non sufficiente.


P.S.
Domanda:
ma con tutte questi studi e stategie, al Lotto, hai mai vinto
qualche soldo? Perchè comunque di quello stiamo parlando...
di come vincere soldi.....mica di Excel
ciao
Frank
[Modificato da tanimon 02/05/2020 13:52]







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 253
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
02/05/2020 17:17

Ciao dodo ciao tanimon rispondo da mobile per dieci giorni non posso più usare il pc per diversi fattori ho ripreso il lavoro dopo 60 giorni di fermo Non posso quindi che ringraziare dodo per la formula nuova anche se non lo provata e Non posso verificare il perché tanimon non c è la tua macro.Per vincere prima uno deve avere tutte le armi in mano e non le ho ancora tutte ma ho promesso che per un Po non posto più argomenti che trattano di questi vi farò sapere buona serata amici [SM=x423028]
Post: 2.760
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
02/05/2020 20:18

Sono contento per te che rientri al lavoro
Saluti



Domenico
Win 10 - Excel 2016
Post: 256
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
12/05/2020 20:06

Buona sera Domenico ho eseguito passo passo le istruzioni del post5,perfetto una curiosità
perché con questa macro
Sub ordina()
Dim Ur As Long, X As Long, DD As Date
Application.ScreenUpdating = False
Ur = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Foglio2").Range("A1:AO" & Ur).Clear
Ur = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Foglio1").Columns("A:AO").Copy
Sheets("Foglio2").Range("D1").PasteSpecial
For X = 1 To Ur
DD = Sheets("Foglio2").Cells(X, 4)
Sheets("Foglio2").Cells(X, 3) = Day(DD)
Sheets("Foglio2").Cells(X, 1) = Month(DD)
Sheets("Foglio2").Cells(X, 2) = Year(DD)
Next X
ActiveWorkbook.Worksheets("Foglio2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("A1:A" & Ur _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("B1:B" & Ur _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("C1:C" & Ur _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Foglio2").Sort
.SetRange Range("A1:AO" & Ur)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Foglio2").Columns("A:C").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
MsgBox "fatto"
End Sub

modificando Range("A1:AO")
al posto delle macro precedente era
Sheets("Foglio2").Range("A1:U" & Ur).ClearContents
i numeri vengono precisi
invece con Sheets("Foglio2").Range("A1:U")
i numeri non vengono precisi non riesco ad allagare nessun file
per ora,i numeri sono 20,il range ("A1:U")mi sembrava corretto ho
fatto diversi tentativi,mi sfugge qualcosa?
Saluti matteo [SM=x423023]


Post: 2.814
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/05/2020 10:14

ciao
non mi sembra una macro che ho scritto io....ma tutto può essere.

In quanto al fatto che non funziona correttamente è necessario che tu alleghi il file

saluti




Domenico
Win 10 - Excel 2016
Post: 258
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
13/05/2020 16:09

Buongiorno Dodo47 la macro preciso che non l'hai fatta te. Ho cancellato il file lo sto rifacendo è per quello che non l'ho
allegato, il problema è un altro ti (vi) spiego con
Sheets("Foglio2").Range("A1:U" & Ur).ClearContents
lasciando perdere le date prima del 1900
avevo l'ordinazione sbagliata dei 20 numeri .Nel foglio i numeri sono nel Range (BU).
Cambiando la macro in Sheets("Foglio2").Range("A1:AO" & Ur).Clear (praticamente cambiando in tutto il codice (U)
con (AO) ho notato che, tutti i numeri ,dopo un controllo approfondito sono in ordine perfettamente. Ho chiesto a
te Domenico ma possono rispondere tutti ovviamente perché magari a occhio sapete dirmi senza allegare il file il perché. Saluti Matteo
p.s. appena [SM=x423023] pronto allego il file
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 14:07. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com