Condividi:        

[Excel] Copia Incolla in un Range definito

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

Postdi Anthony47 » 26/07/06 17:40

Ciao Osva
Faccio finta che il tuo messaggio delle 15:54 non esista, perche’ da certi punti di vista mi sembra che dici l’ opposto di quanto avevo capito nei post precedenti.
Allora, supponiamo che il tuo obiettivo sia ancora mettere in verticale il contenuto della cella A1 sulla colonna F, poi arrivato in fondo riprendere dalla colonna G, e cosi’ via; il tutto senza usare celle di appoggio sul foglio excel (commento: quale sara’ il vantaggio? Forse c’ e’ carenza di celle libere sul foglio?).
In questo caso, invece della Macro2 che ti avevo dato il 17-7, potresti usare questa, che fa la stessa cosa:

Codice: Seleziona tutto
Sub Macro4()
OutZona = "F1:L1"
MaxRiga = 5000

ColUsate = WorksheetFunction.Subtotal(3, Range(OutZona))
If ColUsate = 0 Then ColUsate = 1
RigheUsate = WorksheetFunction.Subtotal(3, Range(OutZona).Offset(0, ColUsate - 1).Range("A1" & ":A" & MaxRiga))
If RigheUsate = MaxRiga Then
  ColUsate = ColUsate + 1
  RigheUsate = 0
End If
Range("A1").Copy
Range(OutZona).Offset(RigheUsate, ColUsate - 1).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub


Come da esigenza, non usa celle di appoggio; usa la funzione Subtotal per calcolare quante righe e colonne sono gia’ state utilizzate, per accodare nel posto giusto il nuovo dato; questo sistema mi sembra piu’ facilmente controllabile del metodo End, che comunque e’ utilizzabilissimo.
Inoltre i dati sono parametrizzati (prime 2 istruzioni), quindi se vuoi una macro che scrive in un range e una che scrive in altro range, basta duplicare la macro e poi cambiargli nome e parametri di esecuzione.

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

Sponsor
 

Postdi Alexsandra » 26/07/06 18:25

Codice: Seleziona tutto
Sub cella_vuota()
[H1].select
ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks).Select
ActiveCell.Select
riga = ActiveCell.Row
colonna = ActiveCell.Column
MsgBox "Riga N°" & Space(5) & riga & vbCrLf & "Colonna N°" & Space(5) & colonna
End Sub
Un pò ingarbugliata , esistono anche delle scorciatoie molto pratiche.
Es. quando digiti il valore in una cella e lanci la macro1 perchè non scrivi in una cella le coordinate aa1=riga aa2 =colonna hai già le coordinate scritte per il prossimo utilizzo
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Copia Incolla in un Range definito":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti