Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel2007]-Redigere tabella da altra tabella/ Macro Opzioni
aetio
Inviato: Tuesday, April 19, 2011 10:42:48 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
va benissimo... ora preparo la tabella e poi ti do il link da dove scaricarla
Grazie infinite e buona notte ;)
eZio
aetio
Inviato: Wednesday, April 20, 2011 6:26:57 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Ecco il LINK
EDIT... il server non riesce a connettersi te lo mando via pm

Nota:
non si riesce ad aprire il file. Non ne capisco il motivo... forse una protezione del server.
Prova a scaricarlo da QUI

Il posizionamento delle ultime righe della tabella/origine avviene in quel modo forse perché la macro preleva e copia i gruppi di 10 righe posizionando ogni gruppo partendo da riga 4 iniziando da col.AJ?


Grazie assai e buona giornata,
eZio
a10n11
Inviato: Wednesday, April 20, 2011 9:59:44 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
ho capito ora il senso della richiesta. ( tabella ordinata dal basso e non dall'alto).
Provando con la macro con il tuo file ho anche notato un errore che sarebbe scaturito nel momento in cui
la cella selezionata fosse stata la riga 10.
la macro modificata è questa:

Sub Provacontitoli()
A = ActiveCell.Row
col = 36
orig = A
riga = 4
If (orig - 3) Mod 10 = 0 Then
x = orig / 10
Else
x = Int(((orig - 3) / 10)) + 1
resto = (orig - 3) Mod 10
End If
For I = 8 To 33
If x < 1 Then Exit Sub
For n = 1 To x
If A >= 10 And orig - 3 > 7 Then
Cells(A - 9, I).Select
Selection.Resize(10).Copy Destination:=Cells(riga, col)
Else
Cells(A - (resto - 1), I).Select
Selection.Resize(resto).Copy Destination:=Cells(riga + (10 - resto), col)
End If
col = col + 1
If n <> x Then
A = A - 10
Cells(A, I).Select
End If
Next
riga = riga + 13
col = 36
A = orig
Next I
End Sub

saluti
Giap

aetio
Inviato: Thursday, April 21, 2011 8:34:54 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
finalmente ho potuto guardare la nuova macro risistemata... l'ho provata su uno dei file e funziona a dovere ;)
[commento: Mamma mia, quanto è complicata e bella!!]
Non sono riuscito a capire l'errore generato in riga 10 dalla vecchia macro... se non ti è di disturbo, quando hai tempo e voglia (non voglio abusare della tua immensa disponibilità, caro Amico) me lo spieghi in super-sintesi?
Grazie infinite e buona giornata,
eZio
a10n11
Inviato: Thursday, April 21, 2011 9:40:42 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
L'errore corretto che menzionavo, veniva scaturito nel caso in cui la cella selezionata fosse la riga 10.
Con l'istruzione: If A >= 10 viene valutato se prendere l'intera decina oppure il residuo della decina.
Non era stato previsto che si potesse selezionare anche la riga 10. In questo caso la macro l'avrebbe interpretata
come decina piena non tenendo conto dell'eventuale intestazione. Avrebbe eseguito la riga di codice
Cells(A - 9, I).Select
Selection.Resize(10).Copy Destination:=Cells(riga, col)

Per risolvere tale anomalia è stata modificata la riga del codice in: If A >= 10 And orig - 3 > 7 Then
sottoponendo al controllo anche la variabile "Orig" meno le righe di intestazione forzando così l'esecuzione
di questa riga di codice:
Cells(A - (resto - 1), I).Select
Selection.Resize(resto).Copy Destination:=Cells(riga + (10 - resto), col)
saluti
Giap

aetio
Inviato: Thursday, April 21, 2011 1:38:43 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
come sempre molto chiaro in 4 righe... una dote assai rara e preziosa!!
Grazie per tutto, buon pomeriggio
eZio
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.