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 :

inserer une fontion dans un vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut inserer une fontion dans un vba
    est-ce possible de mettre une fonction dans un code ,
    au depart la macro effectue un copier coller , mais les resultat de la feuille facture b21:b44 devrait donner a la copie de la feuille inventaire un le nombre indiquer mais en negatif.mais je ne peux pas appliquer negatif a la colonnes de la feuille inventaire car il y a d'autre donner qui si insert au renouvellement de stock .

    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
    Sheets("INVENTAIRE").Select
        Rows("10:35").Select
        Selection.Insert Shift:=xlDown
        Sheets("FACTURE").Select
        Range("A21:A44").Select
        Selection.Copy
        Sheets("INVENTAIRE").Select
        Range("A10").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Range("A10").Select
        Sheets("FACTURE").Select
        Application.CutCopyMode = False
        Range("B21:B44").Select
        Selection.Copy
        Sheets("INVENTAIRE").Select
        Range("C10").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False(GENRE ICI IL FAUDRAIT MULTIPLIER PAR -1, )           
        Range("C10").Select
        Sheets("FACTURE").Select
        Application.CutCopyMode = False
        Range("A21:B44").Select
        Selection.ClearContents
        Range("A21").Select
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut lebeniste et le forum
    Ton code
    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
    Sub Test()
    Dim Cel As Range
    Sheets("INVENTAIRE").Activate
    Rows("10:35").Insert Shift:=xlDown
    Sheets("FACTURE").Range("A21:A44").Copy
    Range("A10").PasteSpecial Paste:=xlPasteValues
    Range("A10").PasteSpecial Paste:=xlPasteFormats
    Sheets("FACTURE").Range("B21:B44").Copy
    Range("C10").PasteSpecial Paste:=xlPasteValues
    Range("C10").PasteSpecial Paste:=xlPasteFormats
    For Each Cel In Selection
        Cel = Cel * -1
    Next Cel
    Sheets("FACTURE").Activate
    Range("A21:B44").ClearContents
    Range("A21").Activate
    End Sub
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut
    mon code est long mais je ne sais jamais quoi enlever ???

    le tien fonctionne merveille merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut lebeniste et le forum
    Pour épurer un code, il suffit quelques fois de raisonner logiquement... et de tester
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("FACTURE").Select
    Range("A21:A44").Select
    Selection.Copy
    Sheets("INVENTAIRE").Select
    Range("A10").Select
    Selection.PasteSpecial
    peut devenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("FACTURE").Range("A21:A44").Copy
    Sheets("INVENTAIRE").Range("A10").pastespecial
    Tu fais ton code, à l'aide des macros apprentissage. Quand il fonctionne tu l'épure en supprimant les select/selection. et tu testes (tu ne peux trier que la feuille active, par exemple). Les select ne se font que sur la feuille active, donc, si tu n'as plus de selection, tu peux éviter de changer de feuille. Avec l'habitude, ton code deviendra plus compréhensible, plus léger et tes macros iront plus vite.
    Mais comme pour tout, sur Office, tu commences toujours par perdre du temps, avant d'en gagner.
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut
    merci des renseignements, je ne savais pas que ca pouvais ralentir la macro .
    peut-etre meme que a l'activation de mes macro l'ecran flash (s'intille) ca peut etre une cause ????

    je me demandais toujours quel section je pouvais enlever, mais tes conseils me seront utile,
    au fond on fait du essais erreur et avec le temps on deviens meilleur

    comme dans tout il faut commencer par le bas de l'echelle , je gravitte les marche peu a peu .....


    merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut
    For Each Cel In Selection
    Cel = Cel * -1
    Next Cel
    d'apres se que j'ai vue , " cel " = quantité ?

    si je veux mettre pour une colonne ou il y a des $ mais une colonne specifique en negatif ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each format$ In Selection
        format$ = format$ * -1
    Next format$
    ne fonctionne pas

    il y a une place ou je pourrais voir tout ces description de texte ???

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

Discussions similaires

  1. Inserer une date dans une table via vba
    Par marcelstan dans le forum Access
    Réponses: 2
    Dernier message: 31/07/2014, 11h12
  2. Recherche en vba pour inserer une formule dans une cellule
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2011, 19h36
  3. [VBA-E] Inserer une image dans une cellule
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/04/2007, 08h49
  4. inserer une image dans un dbgrid delphi
    Par cello dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 18h51
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44

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