Cómo renombrar una columna con VBA

strikas06 Mensajes publicados 22 Estado Miembro -  
strikas06 Mensajes publicados 22 Estado Miembro -
Bonjour à tous,

Soyez le bienvenu dans le monde d'Excel ! Pour remplacer les valeurs d'une colonne par celles qui leur sont associées dans un autre fichier, vous pouvez utiliser un code VBA (macro). Voici un exemple de macro que vous pouvez utiliser pour accomplir cette tâche :

```vba Sub RemplacerValeurs() Dim sourceFile As Workbook Dim sourceSheet As Worksheet Dim targetSheet As Worksheet Dim i As Long Dim valueToFind As Variant Dim foundName As Variant ' Ouvrir le fichier source Set sourceFile = Workbooks.Open("Chemin\Vers\Votre\DeuxièmeFichier.xlsx") Set sourceSheet = sourceFile.Sheets("Sheet1") Set targetSheet = ThisWorkbook.Sheets("NomDeVotreFeuille") ' Boucle à travers les valeurs de la colonne cible For i = 1 To targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Row valueToFind = targetSheet.Cells(i, 1).Value ' Rechercher la valeur dans la colonne A du fichier source On Error Resume Next foundName = Application.WorksheetFunction.VLookup(valueToFind, sourceSheet.Range("A:B"), 2, False) On Error GoTo 0 ' Remplacer la valeur par le nom trouvé If Not IsError(foundName) Then targetSheet.Cells(i, 1).Value = foundName End If Next i ' Fermer le fichier source sourceFile.Close SaveChanges:=False End Sub ```

Pour exécuter cette macro :
1. Appuyez sur `ALT + F11` pour ouvrir l'éditeur VBA.
2. Insérez un nouveau module avec `Insertion > Module`.
3. Copiez et collez le code ci-dessus dans le module.
4. Remplacez `"Chemin\Vers\Votre\DeuxièmeFichier.xlsx"` par le chemin réel de votre fichier et `"NomDeVotreFeuille"` par le nom de votre feuille dans votre premier fichier.
5. Fermez l'éditeur et retournez à Excel.
6. Exécutez la macro avec `ALT + F8`, sélectionnez `RemplacerValeurs`, puis cliquez sur `Exécuter`.

J'espère que cela vous sera utile ! Bonne journée à tous.

2 respuestas

  1. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
     
    Hola

    ¿Estás seguro de querer usar VBA para hacer esto cuando con una simple búsquedaV ......?

    --
    Michel
    0
  2. strikas06 Mensajes publicados 22 Estado Miembro
     
    ¡Hola Michel!

    Sí, de hecho, al usar una macro me permitirá hacer eso más rápido en lugar de arrastrar la fórmula cada vez... Y ocupará menos espacio en mi archivo :).

    ¡Gracias por interesarte en mi pregunta de todos modos!
    0
    1. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
       
      Disculpa que insista, pero escribes la fórmula en la columna en la fila del primer número y haces doble clic en el cuadrado negro en la parte inferior derecha de la celda.

      Pesará menos si tu libro supera los 2 MB, de lo contrario, la ganancia es baja.

      Bueno, voy a hacerte algo en VBA ya que parece una pregunta de vida o muerte; un poco de paciencia.
      ;o)
      0
    2. strikas06 Mensajes publicados 22 Estado Miembro
       
      :))))

      ¡Muchas gracias, Michel! De hecho, el archivo que voy a hacer va a ser muy pesado, ya que cada día voy a agregar aproximadamente 100 líneas a mi tabla y debe durar durante todo el período 2013... creo que pesará más de 2 MB.

      ¡Muchas gracias! Claro que seré paciente ;)
      0
    3. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
       
      Sub macro_para_hacer_placer_aun_así() Dim Fin As Integer, Cptr As Integer With Sheets(2) Fin = .Columns("A").Find("*", , , , , xlPrevious).Row T_lista = .Range("A2:B" & Fin).Value End With Sheets(1).Range("A2").Resize(UBound(T_lista), 2) = T_lista End Sub 
      0
    4. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
       
      Voy a agregar aproximadamente 100 líneas a mi tabla

      ???? no especificado al principio: me preocupas.....
      0
    5. strikas06 Mensajes publicados 22 Estado Miembro
       
      Sí, lo sé... La tarea que me han confiado es tan larga de explicar que no podía describirlo todo en el mensaje, lamentablemente :(. ¡Muchas gracias, Michel! Intentaré integrar esta macro en la mía.
      0