Sur ma feuille je rentre en colonne "C" des noms de pays et j'ai en colonne A5:A200, E5 :E200 et G5:200 des formules tel que:
=SI(C5="";"";Translate(C5;"fr";"es")) .
Quand mes colonnes sont traduite.
J'ai un code qui me permet de copier et coller sur un autre feuille.
Code:
Sub CopierColler()
Sheets("traduction").Range("A5:G100").Copy
Sheets("CopierColler").Range("A5").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("CopierColler").Select
End Sub
Mon problème est que les cellules des colonne A5:A200, E5 :E200 et G5:200 non remplis me donne sur ma deuxième feuille des truc comme sa.
, "Saint Jean", "Sainte Marie", "Barbuda", "Saint Paul", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
Ecrire "Résolu" ne sert strictement à rien car un fil peut toujours être complété.
Par exemple ici il vaut mieux utiliser :
Code:
Option Explicit 'déclaration des variables obligatoire, cela évite de faire des erreurs
Sub Transpose_pays()
Dim esp$, fr$, eng$, ger$, lst$, av$, ap$, lig&, i&
esp = "["
fr = "["
eng = "["
ger = "["
'si l'on veut insérer le ; après l'accolade la ligne suivante devient : lst = "];"
lst = "];"
av = """"
ap = """, "
With Sheets("Traduction")
lig = .Range("C" & .Rows.Count).End(xlUp).Row 'colonne C sans formules
For i = 5 To lig
esp = esp & av & .Range("A" & i) & ap
fr = fr & av & .Range("C" & i) & ap
eng = eng & av & .Range("E" & i) & ap
ger = ger & av & .Range("G" & i) & ap
Next
End With
With Sheets("CopierColler").[J5:J7]
If lig < 5 Then .Cells = "": Exit Sub 'tableau vide
.Cells(1) = "regionsPays['en'] = " & Left(fr, Len(fr) - 2) & lst
.Cells(2) = "regionsPays['en'] = " & Left(eng, Len(eng) - 2) & lst
.Cells(3) = "regionsPays['en'] = " & Left(ger, Len(ger) - 2) & lst
.EntireColumn.AutoFit
.Parent.Activate 'activation facultative
End With
End Sub
De cette manière aucun problème si l'on exécute la macro manuellement sur une feuille quelconque.
Et c'est nettement plus digne d'un futur "barbatruc"
Edit : quelques remarques :
- en C5 de la 1ère feuille il manque le "s" de "Saint Georges"...
- pourquoi ne pas restituer l'espagnol en colonne J de la 2ème feuille ?
- s'il s'agit uniquement d'obtenir le résultat des concaténations le copier-coller est inutile.