IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création de Formula en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Création de Formula en VBA
    Bonjour,
    j'ai un souci sur une macro.
    Je m'explique :
    J'ai deux feuilles :
    -La première est un tableau basique ("Sous-traitants"), lorsque je lance la macro elle copie la ligne 10
    et l'insère sur la dernière ligne ayant une valeur en "A"
    je demande par input box deux valeurs à donner.

    Jusque la pas de problème.

    Ensuite j'ai une feuille masquée qui est copier par cette même macro.

    Le problème arrive,
    dans cette nouvelle feuille créée je voudrai par macro mettre des formules.
    Par exemple dans la cellule E3 je veux que la formule soit :
    ='Sous-traitants'! L et numéro de la ligne créée.
    et c'est justement la que je bloque,

    Je joint mon fichier et ci dessous la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Sub creation_ligne()
     
    Dim Lot As String
     
    Lot = InputBox("Nom du Lot :", "A renseigner", "")
    If Lot = "" Then Exit Sub
     
     
    Dim Lig As Long
    Lig = 11 'première ligne à vérifier
    Do While Not IsEmpty(Range("A" & Lig))
    Lig = Lig + 1
    Loop
     
    Range("a" & Lig).Select
     
    Range("a10:Av10").Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Selection.Copy
     
    Range("a" & Lig).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
     
    Range("a" & Lig) = Lot
     
    Dim NOMST As String
     
    ' demander le nom sous traitant
    NOMST = InputBox("NOM DU SOUS TRAITANT :", "A renseigner", "")
    If NOMST = "" Then Exit Sub
     
    Range("b" & Lig) = NOMST
     
    ' copier coller de l'onglet modèle et positionné a la fin du classeur puis renommé avec le nom sous traitant
    Sheets("Modèle").Visible = True
    Sheets("Modèle").Select
    Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count)
    Sheets("Modèle (2)").Select
    Sheets("Modèle (2)").Name = "DGD" & " " & NOMST
    Sheets("Modèle").Visible = False
     
    Sheets("DGD" & " " & NOMST).Select
    Range("e9").Value = NOMST
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'range("e3").FormulaR1C1 = "='Sous-traitants'!R[8]C[6]"
    Cette dernière ligne est en gros ce que je voudrais mais il faut que ce soit liée à ma variable de numéro de ligne

    Si quelqu'un a une idée

    Merci
    tableau de suivi des sous-traitants - Copie.xlsm

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Je n'ouvre pas de fichier joint, comme la plupart...
    Ici, tu peux changer la ligne 8 de ta formule par une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("e3").FormulaR1C1 = "='Sous-traitants'!R[" & lig & "]C[6]"
    MPi²

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Presque bon
    Bonjour,
    merci pour l'info mais cela ne donne pas la bonne réponse.
    j'obtiens la cellule K14 or je cherchez à trouver la cellule F lig soit dans mon exemple f11

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Je suis rendu chez moi et j'ai ouvert ton fichier.
    Où veux-tu mettre ta formule (Feuille et cellule)
    Et que veux-tu inscrire dans ta formule (Feuille et cellule) ?
    Est-ce que la ligne est variable ?
    MPi²

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le problème arrive, dans cette nouvelle feuille créée je voudrai par macro mettre des formules.
    Par exemple dans la cellule E3 je veux que la formule soit :
    ='Sous-traitants'! L et numéro de la ligne créée.
    et c'est justement la que je bloque,
    La lecture de ces deux billets pourra peut-être t'aider à résoudre ton problème Ecrire une formule dans Excel à l'aide d'une procédure VBA et Comment écrire des formules plus complexes et rendre dynamique les références aux plages de cellules ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Novembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2016
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par parmi Voir le message
    Je suis rendu chez moi et j'ai ouvert ton fichier.
    Où veux-tu mettre ta formule (Feuille et cellule)
    Et que veux-tu inscrire dans ta formule (Feuille et cellule) ?
    Est-ce que la ligne est variable ?
    Bonjour,
    je veux mettre ma cellule dans la nouvelle feuille créée qui est une copie de la feuille modèle.
    Dans cette nouvelle feuille en E3 je veux que ça m'inscrive la valeur de la feuille "soustraitants" la colonne L et la ligne qui vient d'être créée.
    En inscrivant cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("e3").Formula = "='Sous-traitants'!R[" & Lig - 3 & "]C[7]"
    Ça marche

    Or je ne comprend pas pourquoi?
    R c'est bien la ligne et C la colonne?
    Donc normalement je devrai avoir cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("e3").Formula = "='Sous-traitants'!R[" & Lig & "]C[11]"

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Probablement parce que tu mélanges Formula et FormulaR1C1
    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("E3").Formula  = "='Sous-traitants'!L" & Lig
    MPi²

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de label par VBA (excel)
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 14h46
  2. Création formulaire uniquement en VBA
    Par AlvinTheMaker dans le forum IHM
    Réponses: 2
    Dernier message: 31/07/2006, 19h45
  3. Création base mySql depuis VBA
    Par LostIN dans le forum Access
    Réponses: 4
    Dernier message: 18/07/2006, 20h34
  4. problème de création de requète sous VBA
    Par Golork dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2006, 14h35
  5. Création de formulaire en VBA - Plantage
    Par Shansson dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo