Condividi:        

Aggiungere riga/colonna

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

Aggiungere riga/colonna

Postdi GreenDays » 24/07/12 10:05

Ciao, buongiorno! :)

ho una tabella formattata in un determinato modo: bordi, carattere, celle unite ecc. Questa tabella è in continua evoluzione, nel senso che aggiungo e tolgo molto spesso dei nomi. Mi piacerebbe una macro in grado di aggiungere colonne e righe formattate allo stesso modo di quelle appartenenti alla tabella.

Insomma, nel momento in cui devo aggiungere un nuovo nominativo e le righe della suddetta tabella sono tutte piene, cliccando su di un tasto creo automaticamente una riga.

Suggerimenti in merito? Suppongo che si dovrebbe utilizzare il "with" ma ahimè non saprei proprio come procedere!

Grazie per l'attenzione e buon proseguimento di giornata

Ciao :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Sponsor
 

Re: Aggiungere riga/colonna

Postdi ricky53 » 24/07/12 11:31

Ciao,
un piccolo suggerimento:
attiva il registratore di macro
esegui le operazioni di inserimento che ti occorrono
ferma il registratore di macro
con Alt+F11 vai a vedere il codice
e ... qui nasce il tutto ---->>> occorre modificare il codice per generalizzarlo in base alle varie situazioni.

Intanto prova e poi vediamo il codice che avrai prodotto e insieme qualcosa troveremo.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Aggiungere riga/colonna

Postdi GreenDays » 24/07/12 17:07

ricky53 ha scritto:Ciao,
un piccolo suggerimento:
attiva il registratore di macro
esegui le operazioni di inserimento che ti occorrono
ferma il registratore di macro
con Alt+F11 vai a vedere il codice
e ... qui nasce il tutto ---->>> occorre modificare il codice per generalizzarlo in base alle varie situazioni.

Intanto prova e poi vediamo il codice che avrai prodotto e insieme qualcosa troveremo.


ciao ,buonasera a tutti/e, ricky53 :)

solitamente utilizzo il registratore di macro per capire come opera excel, ma in questo caso specifico, il codice creato (ho utilizzato il registratore per aggiungere solo una riga, ma penso che lo stesso discorso valga anche per le colonne) è chiaro ma avrei seri dubbi su come scrivere una macro che "automaticamente" possa fare quanto desiderato.

Il codice prodotto è:

Codice: Seleziona tutto
Sub Macro1()
    Rows("16:16").Select
    Selection.Insert Shift:=xlDown
    Range("C14:O14").Select
    Selection.Copy
    Range("C15").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C15:O15").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub


Ed è presente nel file

http://uploading.com/files/get/abbcmmam/PROVA.xls

Confido in un vostro prezioso suggerimento
Grazie e buon proseguimento di serata :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Aggiungere riga/colonna

Postdi Flash30005 » 25/07/12 02:59

La tua tabella ha celle unite e rende difficoltoso aggiungere colonne pertanto separe le celle e occupa solo le colonne da C a F allargando la loro dimensione secondo l'esigenza.
in un modulo inserisci queste macro (intero codice
Codice: Seleziona tutto
Public Riga, Col As Integer
Sub AddRiga()

    Range("C" & Riga & ":F" & Riga).Copy
    Range("C" & Riga + 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C" & Riga + 1 & ":F" & Riga + 1).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub
Sub AddCol()
    Columns(Col).Copy
    Columns(Col + 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Columns(Col - 1).Copy
    Columns(Col).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Font.ColorIndex = 0
    Cells(6, Col + 1).Select
End Sub

e nel Vba del foglio inserisci questo codice
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
UR = Worksheets("Foglio1").Range("C" & Rows.Count).End(xlUp).Row
AreaR = "C7:C" & UR
AreaC = "D1:IV1"
If Application.Intersect(Target, Range(AreaR)) Is Nothing Then GoTo SaltaAR
Cancel = True
Riga = Target.Row
If Riga = UR Then
    AddRiga
Else
    If Riga > 6 Then Rows(Riga & ":" & Riga).Insert Shift:=xlDown
End If
SaltaAR:
If Application.Intersect(Target, Range(AreaC)) Is Nothing Then Exit Sub
Cancel = True
UC = Worksheets("Foglio1").Cells(6, Columns.Count).End(xlToLeft).Column
Col = Target.Column
If Col > UC Then Exit Sub
If Col = UC Then
    AddCol
Else
    If Col > 3 Then Columns(Col).Insert Shift:=xlToRight
End If
End Sub

Quando fai un doppio click nella colonna C (entro i dati) avrai una riga in più con la differenza che se clicchi sull'ultima riga formatterai la tabella con bordo includendo la riga aggiunta altrimenti avrai una riga aggiunta all'interno della tabella stessa.

Se clicchi dalla colonna D a F (o superiore se compilata la testata in riga 6) avrai una colonna in più o all'interno della tabella o alla fine, in quest'ultimo caso la tabella sarà di nuovo bordata.

Allego il file test

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Aggiungere riga/colonna":


Chi c’è in linea

Visitano il forum: Nessuno e 65 ospiti