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 :

utiliser une variable pour insérer une ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut utiliser une variable pour insérer une ligne
    Bonjour a ts,

    J'aurais besoin d aide pour "réparer" une de mes macro,

    c est vraiment bizarre, parfois elle marche nickel d autre fois j ai un bug, pour passer outre le bug certaine fois je ferme excel et re ouvre et ca remarche, d autre fois rien a faire

    Bon le code parle plus que ma tentative d explication : je veux inserer une nouvelle ligne sur certain critère
    QPY QPM PricingT sont de variable
    le pb est ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        Rows(rowt).Select 
                        Selection.insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Si vous avez une idée n hesitez pas car je n en ai aucune
    merci d avance et bonne journée
    ( je fais du vba le dimanche alors je dis ca pour vous )

    '
    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
    Do Until ActiveCell.Row > rowpere 
    rowt = ActiveCell.Row 
     
            If ActiveCell.Value = "SuMonth" Then 
     
                        If ActiveCell.Offset(0, -6).Value = QPY _ 
                        And ActiveCell.Offset(0, -7).Value = QPM _ 
                        And ActiveCell.Offset(0, -8).Value = pricingT Then 
     
                        Rows(rowt).Select 
                        Selection.insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
     
                                                        With Selection.Interior 
                                                        .Pattern = xlSolid 
                                                        .PatternColorIndex = xlAutomatic 
                                                        .ThemeColor = xlThemeColorDark1 
                                                        .TintAndShade = 0 
                                                        .PatternTintAndShade = 0 
                                                        End With

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Comment ce manifeste ton bug ??


    sinon ton code gagnerait en stabilité si tu supprimer tous ces select, activecell, Selection qui sont des sources de problèmes...

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    le pb est ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows(rowt).Select 
    Selection.insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Si vous avez une idée n hesitez pas car je n en ai aucune
    Tu parles d'un bug. Quel bug, as-tu un message d'erreur si oui quel est son n° ?
    As-tu essayé le débogage ?
    Quelle est la valeur de la variable rowt ?
    Le programme entre-t-il dans la boucle Do Until ActiveCell.Row > rowpere ?
    De plus mais cela n'a rien à voir avec ton bug cette syntaxe est meilleure. La méthode Select n'a aucune raison d'être et ralenti le programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(rowt).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    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

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut
    Merci pour vos promptes reponses,

    alors l erreur en question est :
    run time error 1004
    cannot shift objuect off sheet
    le debug mode m amene sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Quand je passe le curseur sur le code :
    xlFormatFromLeftOrAbove = 0
    xlDown = -4121

    la bonne ligne est bien selectionné, mais l instruction pour insérer ce bloque
    Merci d avance,

    pour ce qui est du "with" vous avez certainement raison, j ai juste utilisé un enregistrement macro ... je vais faire cette modif

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2012, 14h07
  2. Utiliser une variable pour désigner une colonne
    Par NicolasDeVos dans le forum SQL
    Réponses: 2
    Dernier message: 12/06/2008, 09h12
  3. Commande pour insérer une variable dans un script
    Par sliderman dans le forum Linux
    Réponses: 2
    Dernier message: 10/12/2007, 15h53
  4. Réponses: 6
    Dernier message: 29/11/2007, 16h15
  5. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45

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