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

amelise Messages postés 53 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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.

5 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

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

    Cdlmnt
    0
  2. amelise Messages postés 53 Statut Membre
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  4. amelise Messages postés 53 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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