Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [macro excel 2k7]

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    36

    [macro excel 2k7]

    Ciao a tutti..
    ho un problema con una macro che non riesco ad ultimare, ecco il mio problema:
    mi arrivano dei documenti in formato pdf, delle tabelle, e con un programmino le riconverto in excel. Tuttavia i testi presenti all'interno della tabella vengono (giustamente) messi su più righe, poichè nella conversione a pdf perde l'unione delle celle, mi ritrovo quindi con questo testo spezzato ad esempio su 7 righe, e devo invece riaverlo in un'unica cella, ma se faccio "unisci e centra" mi prende solo il contenuto della prima cella.
    Sono quindi ricorso alla formula "Concatena" con cui riesco a rimetterle insieme, ma siccome sono documenti da centinaia di pagine volevo fare una macro.
    Detto fatto... ma la funzione concatena non prende come celle il "da a" (ad esempio B2:B10) ma devo metterle una dopo l'altra (B2; B3; B4; .... B10)... come faccio a dire alla macro di unire tutte quelle che seleziono? per ora se mentre registro una macro unisco 7 righe, sulla selezione successiva mi unisce sempre e solo 7 righe.. non so come dirgli di concatenarle tutte!

    HELP!
    Grazie mille!!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    Option Explicit
    
    Sub unisci()
    Dim testo As String
    Dim cella As Range
    
    For Each cella In Selection
        testo = testo & " " & cella.Value
    Next cella
    Range("b" & Selection.Rows(1).Row).Value = testo
    End Sub
    Il mio esempio unirà il testo delle righe selezionate nella colonna B nella prima riga scelta dell'intervallo. Spero ti sia utile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    36
    grazie mille!! è xfetto!
    .. e se posso ti chiedo ank una cosa..

    ora che mi restituisce la cella con il testo unito, posso fargli selezionare quella cella e n celle sottostanti, dove n è uguale al numero di celle che seleziono all'inizio.
    così poi unisco l'altra macro del progetto, che mi fa un'unione cella e formatta la cella come serve.

    io ho provato così:

    ActiveCell.Range("b & Selection.Rows(1).Row : b & (Selection.Rows(1).Row+i)").Select

    dove i è un contatore ke mi dice quante celle avevo selezionato all'inizio.


    cavolo.. non mi ricordo più nulla di vb!

    Grazie!!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Vedi se così va bene.

    codice:
    Option Explicit
    
    Sub unisci()
    Dim testo As String
    Dim cella As Range
    Dim inizio As Long, fine As Long
    
    inizio = Selection.Rows(1).Row
    fine = inizio + Selection.Rows.Count - 1
    
    For Each cella In Selection
        testo = testo & " " & cella.Value
    Next cella
    
    'applichi alla cella la formattazione che vuoi
    'esempio:
    With Range("b" & inizio)
        .Value = testo
        .Font.ColorIndex = 3
    End With
    'unisco le celle
    Range("b" & inizio & ":b" & fine).Merge
    End Sub

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    36
    Prefetto! grazie mille!!
    sono riuscito a fare tutto!!!

    Bye!!

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.