Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [EXCEL e VBA] Aggiungere formula in automatico all'aggiunta di una riga

    Come aggiungere automaticamente una formula (in un'apposita cella della riga) all'aggiunta di una nuova riga?! E' possibile?

    Il problema mi sorge perchè vorrei evitare di star li a copiare ogni volta la cella contenente la formula per tutte le righe che aggiungo.

    Grazie a tutti!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Esempio banale:

    hai un valore in cella A1 e uno in cella B1 e vuoi calcolare la somma nella cella C1

    =SE(E(A1<>0;B1<>0);A1+B1;"")

    Con questa formula se i due valori sono diversi da 0 verrà effettuata la somma, in caso contrario la cella risulterà vuota.

    Non farai altro che copiare la cella C1, selezionare tutta la colonna C e fare incolla speciale formule per avere tutta la colonna pronta al calcolo dell'eventuale somma in presenza di valori.

  3. #3
    Si, questo lo sapevo, ma volevo sapere se la copia di quella formula poteva essere fatta in AUTOMATICO (magari tramite VBA) all'aggiunta di una nuova riga.
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  4. #4
    nessuno ha qualche idea?!?
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  5. #5
    prova così.
    crea un pulsante ed inserisci questo:

    Dim Inizio As Integer, Fine As Integer
    Dim MiaCellaAs StringInizio = InputBox("inserire il numero di riga iniziale")
    Fine = InputBox("inserire il numero di riga finale")
    For t = Inizio To Fine
    MiaCella= "A" & t 'lettera della colonna

    Range(MiaCella).Select
    ActiveCell.FormulaR1C1 = "inserisci tua formula "
    Next t


    per creare la formula utilizza il registratore di macro

  6. #6
    scusa, errore nel codice postato precedentemente.
    questo è corretto:

    Dim Inizio As Integer, Fine As Integer
    Dim MyCella1 As String
    Inizio = InputBox("inserire il numero di riga iniziale")
    Fine = InputBox("inserire il numero di riga finale")
    For t = Inizio To Fine
    MyCella1 = "B" & t'lettera della colonna dove vuoi mettere la formula
    Range(MyCella1).Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=1,""OK"",""NO"")"
    Next t


    il codice è scritto per valori in colonna A e formula da mettere in colonna B.

  7. #7
    ho aggiustato il codice, con questo non hai bisogno di inserire la riga iniziale e finale ma premendo il pulsante cancella tutta la colonna con le formule per poi riscriverle.
    si ferma quando trova la prima cella dei valori vuoti.
    l'ho ipotizzata con:
    colonna a : dati
    colonna b: formula di elaborazione.

    codice:
    Dim MyCella1 As String, MyCella2 As String
    
    'cancella la colonna contenente le celle con la formula
        Columns("B:B").Select
        Selection.ClearContents
        Range("B1").Select
    
    'inizio ciclo per riscrivere la formula
    For t = 1 To 65536 'inizia ciclo per tutte le righe di excel, se serve modificare
                               'il valore 1 o 65536 in relazione alle necessità
    
        MyCella1 = "B" & tt 'lettera della colonna dove vuoi mettere la formula
        MyCella2 = "A" & t 'lettera della colonna dove hai dati
            
           'verifico che la cella non sia empty
           If Range(MyCella2).Value = Empty Then
                Exit Sub
            Else
                 Range(MyCella1).Select
                 ActiveCell.FormulaR1C1 = "=IF(RC[-1]=1,""OK"",""i"")"
             
        End If
    Next t
    facci sapere se può fare al caso tuo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.