Fusionner plusieures lignes VBA

Bonjour,

J'ai plusieurs ligne de code VBA sur mon fichier excel, la plus part sert a modifier du texte par un autre. Mais ayant pas mal de mot a remplacer cela me fais pas mal de ligne et je voulais donc savoir si il était possible de faire cela en un seul code.

Voici une partie de mon VBA actuelle :

Windows("BdD HTL.xlsm").Activate

Columns("A:A").Select

Selection.Replace What:="Jan ", Replacement:="01/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Windows("Modules HTL.xlsm").Activate

Windows("BdD HTL.xlsm").Activate

Columns("A:A").Select

Selection.Replace What:="Feb ", Replacement:="02/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Windows("Modules HTL.xlsm").Activate

Windows("BdD HTL.xlsm").Activate

Columns("A:A").Select

Selection.Replace What:="Mär ", Replacement:="03/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Windows("Modules HTL.xlsm").Activate

Windows("BdD HTL.xlsm").Activate

Columns("A:A").Select

Selection.Replace What:="Apr ", Replacement:="04/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Windows("Modules HTL.xlsm").Activate

Windows("BdD HTL.xlsm").Activate

Columns("A:A").Select

Selection.Replace What:="Mai ", Replacement:="05/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Windows("Modules HTL.xlsm").Activate

Je voudrais donc avoir un seul "bloc" a la fin si possible.. Auriez-vous des solution à m'apporter ?

J’espère avoir été assez claire..

Cordialement,

Bonjour

Sans fichier ... code à tester

Sub test()
Dim mois()
Dim i As Byte

mois = Array("Jan ", "Fev ", "Mär ", "Apr ", "Mai ")

Windows("BdD HTL.xlsm").Activate
For i = 0 To UBound(mois)
    Columns("A:A").Replace mois(i), Replacement:="0" & i + 1 & "/", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End sub

Ce serait bien de connaître le nom de la feuille concernée et de savoir si tous les mois sont concernés

Cordialement

Bonjour Dan,

Excuse moi pour les fichiers non transmis, je viens de les mettre en "Fichiers joints".

J'ai reproduit le gros de ce que je voulais faire, la macro s’exécute sur le fichier excel "Modules HTL" est l'action de cette dernière est sur le fichier excel "BdD HTL". Les deux communique par une liaison dite "existantes". On peut remarquer que la fonction VBA qui est le plus utilisée est "replace" je voudrais donc essayer de regrouper ces fonctions dans un seul et même bloc. La feuille de chaque fichier excel a le même nom que le fichier lui même. Et oui cela s'éffectue sur tout les mois. Cette macro me permet de transformer cette date en une date lisible par excel (pour les tableau croisé dynamique) ainsi que faire la traduction des mot en allemand.

Merci.

Bien cordialement,

6modules-htl.xlsm (18.70 Ko)
9bdd-htl.xlsm (706.11 Ko)

re

Que doit contenir le fichier Module HTL au final, seulement la colonne AA transformée ou toute la feuille venant de BdD ?

Edit Dan :

votre fichier Module en retour avec une proposition et le code dans le module 1

  • Ouvrez votre fichier BdD puis le fichier Module HTL
  • Exécutez le code

Le code va copier les données de BdD puis adaptera les mois comme vous le demandez dans votre premier post

Cordialement

Bonjour,

Merci de t'a réponse, le but est en réalité de ne pas copier les données sur le fichier "Modules HTL" mais de les modifier directement dans le fichier "BdD HTL". Pour que par la suite un tableau croisé dynamique dans le fichier "Modules HTL" lise les données de l'autre fichier.

Mais dans le code que tu m'a fournis il y a l'idée de base, il suffit de supprimer le copie/coller, mais je ne vois pas comment ?

Cordialement,

Re

Pour que par la suite un tableau croisé dynamique dans le fichier "Modules HTL" lise les données de l'autre fichier

Ok mais pense que tu vas faire des liens entre les deux fichiers. C'est selon la vue de chacun. Mais de mon coté j'évite toujours.

Sinon voici le fichier BdB en retour avec le code adapté. A noter que ton fichier est très lourd en poids pour le peu de données qu'il y a dedans. Je referai un nouveau fichier à ta place.

Si ok, veille à cloturer le fil en cliquant sur le petit v lors de ta réponse

Cordialement

5bdd-htl.xlsm (768.73 Ko)
Rechercher des sujets similaires à "fusionner plusieures lignes vba"