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 :

VBA / Copier valeur cellule et intégration dans un formule [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2020
    Messages : 9
    Par défaut VBA / Copier valeur cellule et intégration dans un formule
    Bonjour à vous tous et merci par avance.

    Voici le problème que j'ai :

    Mon fichier possède 2 onglets : un nommé "Vierge D.F" et l'autre "Gestionnaire Factures".

    Sur l'onglet "Vierge D.F" dois récupérer une information texte sous la forme " TS 2020 20 12" en cellule "L5" (cette information est une variable).

    Il faut ensuite aller dans l'onglet "Gestionnaire Factures" Aller à la dernière cellule vide d'un tableau (Tableau 3) qui commence en A24 pour écrire cette formule :

    ='TS 2020 20 12'!B$16

    En sachant que la valeur entre ' ' doit être celle récupéré dans l'onglet "Vierge D.F"

    Et enfin étirer la formule de la case on l'on vient d'entrer la valeur jusqu'a la colonne I (i).

    Voici le code que j'ai pour l'instant :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub FREDO()
     
    Range("L5").Select
    Selection.Copy
    Sheets("Gestionnaire Factures").Select
    Cells(Rows.Count, 1).End(xlUp)(2).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseApplication.CutCopyMode = False
    ActiveCell.FormulaLocal = "='TS 2020 12 0002'!B$16"
    Selection.AutoFill Destination:=Range("A27:I27"), Type:=xlFillDefault
    Range("A27:I27").Select
    End Sub


    Mes soucis avec ce code

    Ce n'est pas une variable il prend toujours la valeur TS 2020 12 002

    Lorsque l'étire la formule ça ne se fais que dans le ligne 27

    Merci à vous les pros d'excel et de VBA

    Amicalement Pierre

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    voici pour insérer la formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub toto()
        With ThisWorkbook.Worksheets("Gestionnaire Factures")
            .Cells(.Rows.Count, 1).End(xlUp)(2).Formula = "='" & ThisWorkbook.Worksheets("Vierge D.F").Cells(5, 12).Value & "'!B$16"
        End With
    End Sub
    concernant Autofill, il est normal que seule la ligne 27 soit traitée, c'est ce que tu demandes ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFill Destination:=Range("A27:I27"), Type:=xlFillDefault
    Ne sachant pas quelle plage exacte tu souhaites autofiller, je te laisse modifier en conséquence

  3. #3
    Membre habitué
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2020
    Messages : 9
    Par défaut
    Un grand merci JOE !
    ça fonctionne super, une dernière question et je passe la discussion en Résolu.

    Maintenant que j'ai bien ma valeur dans la cellule suivante dans l'onglet "gestionnaire factures", je voudrais étendre la formule de cette cellule jusqu'a la colonne I(i).
    (mon soucis avec Autofill est dans le fait que je suis obligé de lui donner des coordonnées de cellules).

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    il te suffit de sortir la ligne finale de ta chaine de caractère définissant le range, et de lui ajouter la variable i à la place

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFill Destination:=Range("A27:I" & i), Type:=xlFillDefault

  5. #5
    Membre habitué
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2020
    Messages : 9
    Par défaut
    Alors non pas exactement

    la valeur que l'on vient de coller dans l'onglet 'gestionnaire factures" dans ce cas ci en A27 doit être étendu jusqu'a la colonne I

    Mais le soucis c'est que ce n'est pas toujours en A27 dès lors que je vais lancer le bout de code on va coller la valeur à la cellule suivante vide c'est à dire A28


    Il faut donc que la valeur que l'on vient de coller (qu'importe son numéro de ligne) doit etre étirée jusqu'a la colonne I

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    On peut réutiliser la cellule calculée, en récupérer son adresse (et celle de la colonne I) pour reconstituer le Range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
        With ThisWorkbook.Worksheets("Gestionnaire Factures")
            With .Cells(.Rows.Count, 1).End(xlUp)(2)
                .Formula = "='" & ThisWorkbook.Worksheets("Vierge D.F").Cells(5, 12).Value & "'!B$16"
                .AutoFill Destination:=ThisWorkbook.Worksheets("Gestionnaire Factures").Range(.Address, .Offset(0, 9).Address), Type:=xlFillDefault
            End With
        End With
    End Sub
    Attention, je n'ai pas essayé, regarde si c'est ok

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

Discussions similaires

  1. VBA copier valeur de 2 champs dans 1 champs
    Par chernirachid dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/05/2019, 08h22
  2. VBA Copier plusieurs cellules dans uen autre feuille
    Par Tm7555555 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2013, 20h25
  3. [XL-2010] En VBA, copier des cellules et les coller dans un nouveau classeur
    Par Cgoldy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2013, 19h24
  4. [XL-2003] Macro VBA copie valeur cellule excel et colle dans doc word
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 54
    Dernier message: 03/06/2009, 10h21
  5. Réponses: 2
    Dernier message: 02/06/2006, 14h47

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