You are here:--Trasposta solo colonne compilate ed esportazione
Trasposta solo colonne compilate ed esportazione2019-01-16T08:43:53+02:00

Home Forum Domande su Excel VBA e MACRO Trasposta solo colonne compilate ed esportazione

  • Autore
    Articoli
  • AvatarAndrea Tomasi
    Partecipante
      Post totali: 2

      Buongiorno a tutti,

      Ho un file Excel impostato con nell’esempio seguente:

      Codice Fornitore Banane Mele Pere Altro1 Altro2 Altro3 Altro4
      0001     Andrea        10                        5        Boh1                    Boh3      Boh4

      Dovrei fare in modo che, se nella riga sono compilati più frutti, mi crei una riga per ogni frutto che viene compilato aggiungendo alcuni degli altri campi.

      Nel caso dell’esempio, il risultato quindi dovrebbe essere questo:

      Quantità Frutto Fornitore Altro1 Altro2 Altro4
      10                Banane Andrea          Boh1                   Boh4
      5                   Pere     Andrea          Boh1                   Boh4

      Lo step successivo sarebbe quello di estrarre queste righe in un formato specifico (.010) con ‘;’ come separatore:

      10;Banane;Andrea;Boh1;;Boh4
      5;Pere;Andrea;Boh1;;Boh4

      In qualche modo riesco a fare la trasposizione di tutte le righe, quindi il mio risultato è questo:

      Quantità Frutto Fornitore Altro1 Altro2 Altro4
      10                Banane Andrea          Boh1                   Boh4

                          Mele      Andrea          Boh1                   Boh4

      5                   Pere     Andrea          Boh1                   Boh4

       

      Vorrei però esportare solo le righe in cui la Quantità non è vuota.

      Questi sono i codici che ho scritto fin’ora:

      Sub Esporta()
      Dim MyFile As String
      Dim Stringa As String
      Dim FileSystemObj As Object
      Dim TextStreamFileObj As Object
      Dim i As Integer

      Application.ScreenUpdating = False
      Application.DisplayAlerts = False

      Worksheets(“Estrazione”).Activate

      MyFile = “C:\Temp\Esportazione.010”

      Set FileSystemObj = CreateObject(“Scripting.FileSystemObject”)
      Set TextStreamFileObj = FileSystemObj.CreateTextFile(MyFile, True)

      For i = 2 To Cells(1, 1).Value
      If Len(Cells(i, 1).Value) > 0 Then
      Stringa = Cells(i, 1).Value
      TextStreamFileObj.Writeline (Stringa)
      End If
      Next i

      TextStreamFileObj.Close

      Set mioRange = Nothing
      Set FileSystemObj = Nothing
      Set TextStreamFileObj = Nothing

      Worksheets(“Dati”).Activate

      Application.ScreenUpdating = True
      Application.DisplayAlerts = True

      End Sub

      Sub TraspostaValori()
      Dim InputRange As Range, OutputCell As Range, Ur As Long, Uc As Long

      Ur = Range(“A” & Rows.Count).End(xlUp).Row
      Uc = Cells(1, Columns.Count).End(xlToLeft).Column

      Set InputValori = Range(Cells(2, 3), Cells(Ur, 5))
      Set OutputValori = Range(“L1”)

      For Each cel In InputValori
      OutputValori.Value = cel.Value
      Set OutputValori = OutputValori.Offset(1, 0)
      Next

      End Sub

      Sub TraspostaIntestazione()
      Nr = Range(“A” & Rows.Count).End(xlUp).Row
      Nri = Range(“A” & Rows.Count).End(xlUp).Row
      J = 1
      K = 1
      Nc = 3 ‘ Colonne da copiare
      R1 = 1
      For i = 2 To Nr
      Range(“C1:E1”).Select
      Selection.Copy
      Range(“K” & J).Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
      False, Transpose:=True
      Application.CutCopyMode = False

      For e = 1 To Nc
      Range(Cells(i, 6), Cells(i, 6)).Select
      Selection.Copy
      Range(“M” & K).Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
      False, Transpose:=False
      Application.CutCopyMode = False

      Range(Cells(i, 8), Cells(i, 9)).Select
      Selection.Copy
      Range(“N” & K).Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
      False, Transpose:=False
      Application.CutCopyMode = False

      K = K + 1
      Next e

      J = J + Nc
      Next i
      End Sub

      • Questo argomento è stato modificato 7 mesi fa da Avatar Andrea Tomasi.
    • BySalvBySalv
      Amministratore del forum
        Post totali: 479

        Ciao Andrea, sarebbe opportuno che allegassi il file con alcuni dati ed il risultato che vorresti, per allegare il file usa

        https://www.filedropper.com/

        Ciao By Sal :bye:

      • BySalvBySalv
        Amministratore del forum
          Post totali: 479

          Ciao Andrea, ti ho aggiustato la macro di esportazione adesso esporta il file come i dati della colonna1 del foglio “Estrazione”, il file l’ho fatto creare nella stessa cartella del file originale, inoltre ho fatto cambiare l’estensione mettendo “.txt” e non “.010” perche non lo leggevo, quindi modifica nella macro l’estensione da attribuire.

          ti allego il file con il file txt creato, dimmi se va bene.

          Ciao By Sal :bye:

          http://www.filedropper.com/andrea

        Devi essere loggato per rispondere a questa discussione.

        Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

        Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

        Chiudi