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

insérer des guillemets

E

eymeric

Guest
Bonjour,
est-il possible d'insérer des guillemets ? j'ai une colonne avec des noms, je voudrais la remplacer (ou la copier) avec ces même noms entre guillemets.
C'est faisable ?

Merci
 
L

lea

Guest
avec ce bout de code tu transcrira le contenu de la cellule B17 en B18 en ajoutant des guillemets

nom = Range("B17").Value
Range("B18").Value = Chr(34) & nom & Chr(34)
Léa
 
G

Gérard DEZAMIS

Guest
Bonjour Eymeric

En utilisant la concaténation :

dans la cellule voisine :
="''"&A1&"''"
La valeur entrée en A1 devient "Valeur"

Tirer cette formule vers le bas pour les autres données

@+ GD
 
G

Gérard DEZAMIS

Guest
Bonjour Léa
Re Eymeric

Bien joué !
En VBA c'est evidemment plus propre et surtout cela ne nécessite pas une colonne supplémentaire.

Merci pour la leçon.

@+ GD
 

eric57

XLDnaute Occasionnel
Re : insérer des guillemets

Bonjour

Je me permet de relancer ce poste, car je voudrais changer tout le contenu d'une colonne, et ici le code VBA ne donne que pour une cellule

De plus il crée une colonne supplémentaire, moi je voudrais conserver mes colonnes et simplement avoir le contenu entre guillemets

Si quelqu'un a une solution, je suis preneur
 

job75

XLDnaute Barbatruc
Re : insérer des guillemets

Bonjour eric57,

Sélectionnez la ou les colonnes à traiter et lancez cette macro :

Code:
Sub Guillemets()
Dim r As Range, nlig&, t, i&, x$
Set r = ActiveSheet.UsedRange
nlig = r.Rows.Count
Set r = Intersect(r.Rows(1), Selection.EntireColumn)
If r Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each r In r
  t = r.Resize(nlig + 1).Formula 'au moins 2 cellules
  For i = 1 To nlig 'For i = 2 s'il y a des titres
    x = t(i, 1)
    If x <> "" And Not x Like """*""" Then _
      If Not (x Like "=*" Or IsNumeric(x) Or IsDate(x)) _
        Then t(i, 1) = """" & x & """"
  Next i
  r.Resize(nlig).Formula = t
Next r
End Sub
Les cellules déjà traitées, vides ou contenant des formules, des valeurs numériques ou des dates sont ignorées.

La macro est très rapide car elle utilise un tableau VBA.

A+
 

eric57

XLDnaute Occasionnel
Re : insérer des guillemets

Bonsoir Job75

Merci pour ta macro, elle fonctionne vraiment très vite et très bien.

J'aimerais juste ne pas être obligé de sélectionner au départ mes colonnes, mais que cela fonctionne systématiquement pour les colonne de B a D . Je ne sais pas ce qu'il faut changer dans la macro pour cela
 

eric57

XLDnaute Occasionnel
Re : insérer des guillemets

Bon en faite en cherchant un peu, j'ai modifié la ligne par
Code:
Set r = Range("B2:D" & Sheets(3).Range("m1").Value)

M1 étant un calcul du nombre de ligne avec : {=MAX(SI($A$1:$A$50000<>"";LIGNE($A$1:$A$50000)))}
 

job75

XLDnaute Barbatruc
Re : insérer des guillemets

Re,

Avec des colonnes prédéfinies et contiguës c'est plus simple et plus rapide :

Code:
Sub Guillemets()
Dim w As Worksheet, r As Range, ncol%, t, i&, j%, x$
Set w = ActiveSheet 'à adapter
Set r = Intersect(w.UsedRange, w.[B:D]) 'colonnes contiguës
If r Is Nothing Then Exit Sub
ncol = r.Columns.Count
t = r.Resize(r.Rows.Count + 1, ncol).Formula 'au moins 2 cellules
For i = 1 To r.Rows.Count 'For i = 2 s'il y a des titres
  For j = 1 To ncol
    x = t(i, j)
    If x <> "" And Not x Like """*""" Then _
      If Not (x Like "=*" Or IsNumeric(x) Or IsDate(x)) _
        Then t(i, j) = """" & x & """"
Next j, i
r.Formula = t
End Sub
A+
 

eric57

XLDnaute Occasionnel
Re : insérer des guillemets

Bonjour Job 75

Comme promis je viens faire le point sur ton code.

Celui-ci fonctionne très bien, j'ai juste supprimé "or isnumeric..." puisque seule les cellules vides ou déja avec "" ne sont pas à prendre en compte.

Merci pour ton aide

Eric
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
446
Réponses
19
Affichages
325
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…