completare dati iniziali



  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 12:12:56

    salve,

    se cortesemente mi potete risolvere
    questo problema:

    in G4:G200 ho dei dati numerici per via
    dei doppioni che vengono eliminati
    invece di avere 196 dati se ne presentano
    in meno;

    in K4 devo inserire delle formule fino
    a quando colonna G ha i dati;

    -dimensione 2 variabili:
    Dim X as integer(oppure Long)
    Dim Y as come sopra

    scrivo un:

    Range("K4").select
    for x= 1 to Y

    si inseriscono le formule
    e in chiusura
    ActiveCell.Range("A1:U" & Y).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    next x

    End sub

    Mancano dei dati prima del for
    e quello che vorrei è:
    scrivere le date fino a quando in G
    a partire da G4 ci sono dati e fermarsi
    quando in G trova ""

    Grazie



  • di Mister_x (utente non iscritto) data: 20/01/2017 12:54:20

    ciao

    puoi postare un file di esempio con dei dati gia' inseriti GRAZIE

    ciao




  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 14:04:43

    Salve Mister X

    chiedo se esiste un MP?

    e se si

    Dove lo trovo?



  • di Mister_x (utente non iscritto) data: 20/01/2017 14:52:30

    ciao

    per allegare un file , in alto a destra , ALLEGA UN FILE,

    ciao




  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 15:18:51

    Salve Mister X

    come mi hai detto ho allegato un file.
    nel modulo ho registato una macro per dare spunto a quello che mi serve
    quindi Y dovrebbe essere la colonna G4 in giù.
    quando in colonna g non trova dati la macro si deve fermare,
    cioè non deve scrivere formule in colonna K.

    Grazie dell'intervento




  • di Albatros54 data: 20/01/2017 15:54:36

    in base al file che hai postato.
    ciao
    albatros54
     
    Sub Prova()
        Dim X As Integer
        Dim Y As Integer
        Dim rng As Range
        Dim cl As Range
       Set rng = Range("g4:g19")
       For Each cl In rng
       If cl = "" Then Exit Sub
        Sheets("Ambi").Select
        cl.Offset(0, 4).Select
        'For X = 1 To Y
        ActiveCell.Select
        ActiveCell.FormulaR1C1 = _
            "=SUM(--(MMULT(COUNTIF(RC7:RC8,Archivio!R[6]C3:R[16]C22),ROW(R1C1:R20C1)^0)=2))"
        ActiveCell.Offset(1, 0).Range("A1").Select
        'Next X
        
        Next
    End Su





  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 16:10:38

    salve Albatros54,

    la macro non l'ho provata,
    alla tua soluzione faccio una domanda adesso a okkio
    sai che la colonna piena finisce a g19.
    Succede questo che poniamo che i dati effettivi finiscono a 100 cioè
    la macro senza tenere conto dei dati di colonna G e siccome in colonna g
    si presentano dei dati doppi questi vengono eliminati e non so quanti doppioni
    da eliminare ci sarebbero da eliminare .
    Spero di essermi spiegato cosa voglio intendere cioè chesi deve partire che
    non so quanti dati saranno presenti.
    Ciao



  • di Albatros54 data: 20/01/2017 16:16:22






  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 17:17:22

    Ciao Albatros

    cerca di capire mi sto ammattendo da oggi pomeriggio con quel rng di range
    e cl di celle nel range.

    quindi scusami l'osservazione, vedrò di passare almen per le scuole serali.

    Quindi la macro funziona.
    Solo a titolo info Prima facevo questo passaggio che in una (A) cella mettevo un conta.numeri
    di colonna G e quindi Y era = [A1] e risolvevo il problema.
    Succede che quando utilizzo Dati-Elimina doppioni la formula (qualsiasi) sballa il conteggio
    dei dati.
    Mi sapresti dire come ovviare a questo inconveniente?
    Solo a titolo informativo.
    Però venendo al VBA credo di aver capito meglio con cl.offset(0, 4) che quindi non ci sarebbe bisogno
    della formula Range($K$4).
    Saluti e magari un altro piccolo chiarimento sul VBA che mi hai scritto


  • completare dati iniziali
    di griorgio (utente non iscritto) data: 20/01/2017 19:20:15


    Salve Albatros,

    ti avevo chiesto solo delle informazioni
    ma quanto mi hai postato funzioa perfettamente
    e credo di aver capito il funzionamento.

    Ringrazio te e Mister X che cmq ha aperto ladiscussione.

    Grazie




  • di Albatros54 data: 20/01/2017 19:30:10

    Chiarimenti codice VBA.
    ciao
    albatros54
     
    Sub Prova()
        Dim X As Integer
        Dim Y As Integer
        Dim rng As Range
        Dim cl As Range
      Set rng = Range("g4:g19")'<<<=Setto con rng un oggetto formato dalle celle del range
       For Each cl In rng'<<== per ogni elemento(CL) che è nel rng 
       If cl = "" Then Exit Sub '<<<=== Se CL(quindi la cella che in quel momento sto controllando)è vuota esci dalla Sub
        Sheets("Ambi").Select
        cl.Offset(0, 4).Select'<<===Selezionami la cella che si trova sulla stessa riga Col 4 della cella CL
        'For X = 1 To Y
        ActiveCell.Select
        ActiveCell.FormulaR1C1 = _
            "=SUM(--(MMULT(COUNTIF(RC7:RC8,Archivio!R[6]C3:R[16]C22),ROW(R1C1:R20C1)^0)=2))"
        ActiveCell.Offset(1, 0).Range("A1").Select
        'Next X
        
        Next
    End Sub