copia stringa senza formula



  • copia stringa senza formula
    di almanegrita (utente non iscritto) data: 07/04/2017 08:02:54

    ciao a tutti e ben ritrovati come sempre.
    Ho un problema con delle celle in excel.
    Sono riuscito con il vostro aiuto a creare una formula che sta nella colonna BB che mi prende il contenuto di alcune celle solo se nella colonna A c'è un valore.
    formula in BB >>>>>>> =SE(A2<>0;CONCATENA(V2;",";"BC";A2);"") e mi mette il valore in BB1, BB2, etc...solo se sono popolate le relative celle A1,A2, etc...ora il problema...........
    io ho copiato la formula da bb1 a BB200, quindi la routine mi prende anche le celle dove effettivamente dentro vede la formula ma ad occhio la cella è vuota, perche non essendoci valori su stessa riga il concatena concatena celle vuote.
    Esiste un modo per dire a vba, che deve prendere solo i valori effettivamente pieni che io vedo?
    ( nel mio caso guardando il file allegato da BB5 in poi dovrebbe non esportare nulla ), mentre io nel csv mi trovo le righe in bianco...
    Sepero di essere stato esaustivo
    Un grazie a tutti quelli hce mi aiuteranno.
     
    Sub export1()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    sn = Range("BB2:BB" & LR)
    For J = 1 To UBound(sn)
    c00 = c00 & Join(Application.Index(sn, J, 0), ",") & vbCrLf
    Next
    CreateObject("scripting.filesystemobject").createtextfile(ThisWorkbook.Path & "export1.csv").write c00



  • di Marius44 data: 07/04/2017 10:15:23

    Ciao
    ma l'allegato quando lo inserisci?

    Ciao,
    Mario



  • di almanegrita (utente non iscritto) data: 07/04/2017 10:17:00

    eccvelo scusatemi



  • di Marius44 data: 07/04/2017 10:34:33

    Ciao
    premesso che non ricordo di aver seguito la discussione precedente a cui fai riferimento, avrei alcune domande da porti:
    1a domanda - ma tutti quegli 0 perchè ci sono? Li hai inseriti a mano o rivengono da altre formule?
    2a domanda - ma devi per forza farlo con le formule oppure potresti usare VBA?

    Se si potesse usare un ciclo For ... Next di VBA (invece della funzione CONCATENA che, essendo una formula, devi necessariamente scriverla in ogni cella) e far scrivere nella colonna BB solo le celle piene (non ci sarebbero formule ma, se presente qualcosa in col.A, solo valori). Quindi gestire il trasferimento in cvs solo delle righe in cui BB mostra un valore.

    Ritengo, comunque, che sarebbe utile avere l'intero file che utilizzi (ovviamente senza dati sensibili).
    Ciao,
    Mario


  • copia stringa senza formula
    di almanegrita (utente non iscritto) data: 07/04/2017 11:08:30

    1 - gli zeri vengono dalla formula di importazione di un file esterno xls, me li crea ma per me non è un problema...non mi danno fastidio, tanto i dati che mi servono stanno sulla colonna A e sulla colonna V.....
    Poi a questi dati che sono rispettivamente il N° ordine, ed il BDA, ci aggiungo il ";" ed il "BC" ( lo si evince dalla formula nel foglio excel ).
    2 - magari si potesse fare con vba.
    io ho impostato la formula perche avendo 3 fogli, con colonne diverse, e con dati diversi da accorpare con il concatena è piu semplice, me le seleziono e poi li concateno in base a cio che voglio creare.
    3 - io avevo in mente proprio quello......cioe che la routine se trova qualcosa nella colonna A ( che sia diverso da "null" o "0", prende i valori ( dalle 4 celle che dico io ) e li concatena in automatico e me li salva in csv.
    Nel file ALLEGATO che si nota alla cella BB2 c'è ( IPRYIKBPY,BC570155543 ) che è un concatenamento di celle ( V1 + ";" + "BC" + A1 ).
    ma fino ad ora nulla sono riuscito...
    Quello è il file che ho purtroppo.



  • di Marius44 data: 07/04/2017 12:39:57

    Ciao
    Prova con questa macro da associare ad un pulsante oppure ad un evento del Foglio

    Fai sapere. Ciao,
    Mario
     
    Sub Concatena()
    ur = Cells(Rows.Count, "A").End(xlUp).Row
    a = 1
    For i = 2 To ur
        If Cells(i, 1) <> "" And Cells(i, 1) <> 0 Then
            a = a + 1
            Cells(a, 55) = Cells(i, 22).Value & "," & Cells(i, 1)
        End If
    Next i
    End Sub



  • di almanegrita (utente non iscritto) data: 07/04/2017 15:14:41

    grande.....!!!!
    ala prossimo problema allora...
    grazie ancora :)