Moderatori: Anthony47, Flash30005
Sub CutCols()
Dim StartCol As String, EndCol As String
StartCol = "FW"
EndCol = "CB"
For I = Cells(1, StartCol).Column To Cells(1, EndCol).Column Step -1
If Application.WorksheetFunction.CountA(Cells(4, I).Resize(300, 1)) = 0 Then
Cells(4, I).EntireColumn.Delete
End If
Next I
End Sub
E' esatto, ma avrei dovuto scrivere che la macro deve cominciare dall'ultima colonna (cioe' lavora all'indietro); quindi StartCol deve contenere la colonna piu' a destra ed EndCol la colonna più a sinistra)per startcol intendi la colonna di partenza che se vuota viene eliminata
per endcol la fine
Sub Macro1()
Dim sh1 As Worksheet
Dim i As Long, j As Long
Set sh1 = Sheets("Ruote")
i = sh1.Cells(Rows.Count, 3).End(xlUp).Row '* Se non lo usi, inutile calcolarlo
sh1.Cells(2, "gb").Select 'Funziona solo se sh1 e' già selezionato
ActiveCell.Select '* E' già selezionata, inutile
ActiveCell.FormulaR1C1 = "=COUNT(R[2]C:R[302]C)"
Selection.AutoFill Destination:=ActiveCell.Range("A1:CL1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:CL1").Select '* Non e' necessario
Selection.Copy '* idem
Selection.PasteSpecial Paste:=xlPasteValues '* idem
Application.CutCopyMode = False '* Non necessario se non fai Copy
For i = 1 To i 'Così fa solo 1 giro, quindi perchè impostare un loop??
For j = 1 To 90
If Cells(1 + i, 183 + j).Value = 0 Then 'Se abolisci For I=1 to i allora usa 2 invece di 1+i
Cells(1, 183 + j).Select
Range(Selection, Selection.End(xlToRight)).Select '* Queste istruzioni dovevano servire a copiare tutte (tutte? forse) le..
Range(Selection, Selection.End(xlDown)).Select '* .. colonne a destra dell'attuale, copiarle e spostarle a sx,..
Range(Selection, Selection.End(xlDown)).Select '* .. simulando elimina colonna
Range(Selection, Selection.End(xlDown)).Select '*
Selection.Copy '*
Application.CutCopyMode = False '*
'Ma ti sei accorto che non riuscivi a essere certo di selezionarle tutte e hai saggiamente ripiegato sulle seguenti
' istruzioni. Allora ELIMINA il blocco precedente!
ActiveCell.Offset(0, 1).Range("A1:CK304").Cut Destination:=ActiveCell.Range( _
"A1:CK304")
ActiveCell.Range("A1:CK304").Select
End If
Next j
Next i 'Poichè il Fori=1 to i e' inutile, se togli il For toglierai anche il Next
End Sub
Torna a Applicazioni Office Windows
Ordinare colonne sulla stessa riga se stesso contenuto Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 10 |
Stabilire righe e colonne da mostrare a schermo Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 10 |
Eliminare righe diverse dalla prima data del mese Autore: dipdip |
Forum: Applicazioni Office Windows Risposte: 4 |
Aggiungere e eliminare righe senza alterare i riferimenti de Autore: trittico69 |
Forum: Applicazioni Office Windows Risposte: 4 |
Visitano il forum: Marius44 e 40 ospiti