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
 

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

Statistiques des forums

Discussions
314 214
Messages
2 107 366
Membres
109 814
dernier inscrit
soufian