Bloccato Problema Macro VB

Bloccato

  • domenica 20 novembre 2011 12:12
     
     
    ciao a tutti ho un problemino con una macro di excel scritta in vb, questa macro prende i campi che ci sono in un file che si chiama anagrafica, ci compie delle operazioni sopra e poi li inserisce in un altro foglio chiamato contatti da importare che ha il nome delle colonne pre impostato. Il problema sorge dal fatto che anagrafica ora ha 4 nuovi campi, e che non vengono importati in contatti da importare, non so proprio come risolvere, mi date una mano? Grazie in anticipo 
    Sub Riorganizza()
        Sheets("Contatti").Select
        Range("A2:iV65536").Select
        Selection.ClearContents
        Sheets("Città").Select
        Selection.QueryTable.Refresh BackgroundQuery:=False
        Sheets("Anagrafica").Select
        Selection.QueryTable.Refresh BackgroundQuery:=False
            
        For Each i In Range("A2:A65536")
            If i.Value = "" Then
                RIGHE = i.Row - 1
                Exit For
            End If
        Next i
        
        Intervallo = "E2:E" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("A2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "F2:F" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("B2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "D2:D" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("C2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "M2:M" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("D2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "H2:H" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("E2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "I2:I" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("F2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "V2:V" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("H2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "W2:W" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("I2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "X2:X" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("J2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "Y2:Y" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("L2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "Z2:Z" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("M2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "AA2:AA" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("N2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "AD2:AD" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("S2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "AE2:AE" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("T2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "G2:G" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("W2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "B2:B" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("BF2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "C2:C" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("AQ2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "AC2:AC" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("CE2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "U2:U" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("AG2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "P2:P" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("Q2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "R2:R" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("R2").Select
        ActiveSheet.Paste
        Sheets("Anagrafica").Select
        
        Intervallo = "T2:T" + LTrim(Str(RIGHE))
        Range(Intervallo).Select
        Selection.Cut
        Sheets("Contatti").Select
        Range("AB2").Select
        ActiveSheet.Paste
        Intervallo = "H2:H" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 9, Len(i.Value))
            End If
        Next i
        
        Intervallo = "R2:R" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = i.Value / 100
            End If
        Next i
        
        Intervallo = "Q2:Q" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = i.Value / 100
            End If
        Next i
        
        Intervallo = "I2:I" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 10, Len(i.Value))
            End If
        Next i
        
        Intervallo = "J2:J" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 5, Len(i.Value))
            End If
        Next i
        
        Intervallo = "L2:L" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 10, Len(i.Value))
            End If
        Next i
        
        Intervallo = "M2:M" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 10, Len(i.Value))
            End If
        Next i
        
        Intervallo = "N2:N" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 12, Len(i.Value))
            End If
        Next i
        
        Intervallo = "S2:S" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 6, Len(i.Value))
            End If
        Next i
        
        Intervallo = "T2:T" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 8, Len(i.Value))
            End If
        Next i
        
        Intervallo = "BF2:BF" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                i.Value = Mid(i.Value, 6, Len(i.Value))
            End If
        Next i
        
        Sheets("Anagrafica").Select
        Intervallo = "J2:J" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value <> "" Then
                RIGA = i.Row
                CAP1 = "00000" + Trim(i.Value)
                CAP1 = Trim(Mid(CAP1, Len(CAP1) - 4, 5))
                Sheets("Città").Select
                Intervallo2 = "D2:D" + LTrim(Str(14502))
                For Each I2 In Range(Intervallo2)
                    CAP2 = "00000" + Trim(I2.Value)
                    CAP2 = Trim(Mid(CAP2, Len(CAP2) - 4, 5))
                    If CAP1 = CAP2 Then
                        IDCITTA = I2.Row - 1
                        Sheets("Contatti").Select
                        Range("G" + LTrim(Str(RIGA))).Value = IDCITTA
                        i.Clear
                        Exit For
                    End If
                Next I2
                Sheets("Anagrafica").Select
            End If
        Next i
        Sheets("Contatti").Select
        Intervallo = "G2:G" + LTrim(Str(RIGHE))
        For Each i In Range(Intervallo)
            If i.Value = "" Then
                RIGA = i.Row
                Sheets("Anagrafica").Select
                PROVINCIA = Range("L" + LTrim(Str(RIGA))).Value
                Sheets("Città").Select
                Intervallo2 = "C2:C" + LTrim(Str(14502))
                For Each I2 In Range(Intervallo2)
                    PROVINCIA2 = Trim(I2.Value)
                    If PROVINCIA = PROVINCIA2 Then
                        IDCITTA = I2.Row - 1
                        Sheets("Contatti").Select
                        Range("G" + LTrim(Str(RIGA))).Value = IDCITTA
                        Sheets("Anagrafica").Select
                        Range("L" + LTrim(Str(RIGA))).Clear
                        Exit For
                    End If
                Next I2
                Sheets("Anagrafica").Select
            End If
        Next i
        
        Sheets("Città").Select
        Range("A2").Select
        Sheets("Anagrafica").Select
        Range("A2").Select
        Sheets("Contatti").Select
        Range("A2").Select
        MsgBox ("Elaborazione terminata.")
    End Sub

Tutte le risposte

  • giovedì 24 novembre 2011 12:11
    Proprietario
     
     

    Ciao NicolaDiRienzo,

    Siccome il tuo thread originale è già stato spostato sul forum appropriato, chiudiamo qua questo thread e lasciamo la discussione a proseguire sull’altro.

     

    Grazie per la comprensione,


    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.

    LinkedIn