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

copier coller en VBA - limiter les cellules

bloublou

XLDnaute Occasionnel
Bonjour à tous,

J'ai souci pour faire un copier coller en VBA qui ferait :

- S'assurer que la la cellule ne dépasse pas 35 caractères :
=> si > la cellule est coupée
=> si < la cellule est bouchée par des espaces pour arriver à 35 caractères.


- Mettre toutes les lignes de la colonne A en majusculesJe joints un petit fichier

- Copier coller les colonnes A et C sur la feuille Résultat en colonne A et B

Si quelqu'un à une idée ?

Merci de votre aide

BlouBlou
 

Pièces jointes

  • alimentation.xlsx
    9.9 KB · Affichages: 37

job75

XLDnaute Barbatruc
Re : copier coller en VBA - limiter les cellules

Bonjour bloublou,

Voyez cette macro dans le fichier joint :

Code:
Sub Résultat()
Dim colA, colC, i As Long, t As String
colA = Range("A2:A3", Range("A" & Rows.Count).End(xlUp)) 'au moins 2 éléments
colC = [C2].Resize(UBound(colA))
For i = 1 To UBound(colA)
  t = UCase(Left(colA(i, 1), 35)) 'majuscules
  colA(i, 1) = t & String(35 - Len(t), " ")
Next
'---restitution---
With Sheets("Résultat")
  .Range("A2:B" & .Rows.Count).ClearContents 'RAZ
  .[A2].Resize(UBound(colA)) = colA
  .[B2].Resize(UBound(colC)) = colC
  .Activate
End With
End Sub
Edit 1 : salut Robert

Edit 2 : le test If Len(t) < 35 était inutile.

A+
 

Pièces jointes

  • alimentation(1).xls
    43.5 KB · Affichages: 24
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier coller en VBA - limiter les cellules

Bonsoir Bloublou, Job, bonsoir le forum,

Arf... Grillé par Job ! Je propose même pas tellement son code est mieux...
 

bloublou

XLDnaute Occasionnel
Re : copier coller en VBA - limiter les cellules

Bonjour le forum, Robert, job75,

Merci pour le code ca marche nickel

Juste une question pour cette ligne :

colC = [C2].Resize(UBound(colA))

Je ne comprends pas tout avec les mots clés Resize et UBound.

Merci en tout cas

BlouBlou
 

job75

XLDnaute Barbatruc
Re : copier coller en VBA - limiter les cellules

Bonjour bloublou, Robert,

ColA et ColC sont des matrices de valeurs.

La variable ColC ici n'est pas indispensable, je l'ai créée pour le cas où l'on voudrait modifier ou mettre en forme (majuscules) les valeurs de la colonne C.

Ubound(ColA) renvoie le nombre de valeurs *** de la matrice ColA.

[C2].Resize(UBound(colA)) définit la plage commençant en C2 et de hauteur UBound(ColA).

Edit : *** plus précisément l'index de la dernière valeur de ColA.

Tout ça est expliqué dans l'Aide VBA.

A+
 
Dernière édition:

Discussions similaires

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