VBA: Insérer une formule dans la colonne que j'ai ajoutée

Fermé
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022 - 1 juin 2016 à 16:38
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 3 juin 2016 à 16:01
Bonjour,

Premier jour de VBA, vous excuserez mon niveau débutant ++++.

J'ai déjà écrit le code pour insérer une colonne entre la colonne Y et la colonne Z de mon fichier.
J'aimerais ensuite que dans la deuxième cellule de cette colonne (qui sera donc la nouvelle colonne Z et donc la cellule Z2), il y ait cette formule que je ne connais pas en vba: =droite(Y2;NBCAR(Y2)-1). Je souhaiterais également tirer cette formule jusqu'au bas de la feuille tant qu'il y a encore de la donnée en colonne Y.Et tout cela en vba.


Je vous remercie pour votre aide.
A voir également:

5 réponses

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
1 juin 2016 à 16:50
Bonjour

Un exemple
http://www.cjoint.com/c/FFboYsupMVw

Cdlmnt
0
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022
2 juin 2016 à 11:39
Bonjour,

Voici le lien:
http://www.cjoint.com/c/FFcjLkfsqdz.
J'aimerais donc insérer une colonne entre la colonne Y et Z qui porterait le titre "Numéros de colis 2"b et dans la cellule Z2 de cette nouvelle colonne, appliquer la formule suivante =droite(Y2;NBCAR(Y2)-1) et tout cela en vba.

Merci de votre aide
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
Modifié par ccm81 le 2/06/2016 à 13:43
Bonjour

Le lien ne focntionne pas, as tu bien coché "Type de diffucion public" ?

La procédure qui fait ce que tu demandes

Public Sub OK()
Dim lifin As Long
lifin = Range("Y" & Rows.Count).End(xlUp).Row
Columns("Z").Insert
Range("Z1").Value = "Numéros de colis 2"
Range("Z2").FormulaLocal = "=DROITE(Y2;NBCAR(Y2)-1)"
Range("Z2").AutoFill Destination:=Range("Z2:Z" & lifin), Type:=xlFillDefault
End Sub

Cdlmnt
0
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022
2 juin 2016 à 18:18
Merci beaucoup

En effet, le lien ne marchait pas.
Voici un nouveau lien:http://www.cjoint.com/c/FFcql4SnoRz

J'ai essayé ton code mais j'ai un petit pb.
J'ai commencé à écrire un code dans un classeur (on peut l'appeler "Recueil"). Grâce à ce code, j'ouvre un fichier. C'est dans ce fichier (disons le fichier "Test") que je souhaite insérer une colonne entre la colonne Y et Z. C'est tout bête mais est-ce que je dois inscrire qch avant le code que tu as écrit pour préciser que ce code s'applique au fichier "Test"?

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
Modifié par ccm81 le 3/06/2016 à 16:07
Bonjour

Un peu de retard

Option Explicit

Const FSource = "amelise-test.xls"

Public Sub OK()
Dim lifin As Long
Windows(FSource).Activate
With ActiveWorkbook.Sheets(1)
  lifin = .Range("Y" & Rows.Count).End(xlUp).Row
  .Columns("Z").Insert
  .Range("Z1").Value = "Numéros de colis 2"
  .Range("Z2").FormulaLocal = "=DROITE(Y2;NBCAR(Y2)-1)"
  .Range("Z2").AutoFill Destination:=.Range("Z2:Z" & lifin), Type:=xlFillDefault
End With
End Sub

RQ. Le fichier à traiter (ici amelise-test.xls) doit être ouvert avec la même session d'excel

Cdlmn
0