Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer des guillemets

maval

XLDnaute Barbatruc
Bonjour,

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", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",

Peut-on supprimer ceci", "", "", "", "", "", "", "", "", "", "", "", ""

Je vous remercie de votre aide

Max
 

Pièces jointes

  • Transposes-XXXX.xlsm
    69.1 KB · Affichages: 33

job75

XLDnaute Barbatruc
Bonjour maval, gosselien, le forum,

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.

Bonne journée.
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…