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 :

pb dans une macro excel VB


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut pb dans une macro excel VB
    Bonjour

    J'espère avoir posté au bon endroit.
    Voici mon pb:
    Dans une feuille excel (nommée exceldata) je colle 6 colonnes de données provenant d'un autre excel. Sur un autre onglet( nommé tableau) il y a un tableau qui pointe sur ces 6 colonnes avec des formules du style =SOMMEPROD((exceldata!C2:C64997="critere1")*(exceldata!F2:F64997=2)*(exceldata!B2:B64997))
    .
    Le pb c'est que dans une macro sur la feuille exceldata je fais :
    rows("1:2").select
    Selection.Delete Shift:=xlUp
    Ceci supprime les 2 premieres lignes de mes 6 colonnes data.
    Puis le soucis est que la formule de la feuille tableau change et devient
    =SOMMEPROD((exceldata!C1:C64997="critere1")*(exceldata!F1:F64997=2)*(exceldata!B1:B64997))
    En fait cela modifie la ligne de départ du calcul dans ma formule. J'ai essayé de mettre des $ devant les ref cellule mais cela n'a rien changé.
    Si vous avez des idées(je sais que c'est assez pointu)...
    merci

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Et si, dans les formules, tu mets des $ à tes adresses de cellules:
    $C$2 au lieu de C2
    Ça ne bloque pas les coordonnées?

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci de ta réponse.
    j'ai tenté de de ne supprimer que les cellules
    Range("A1:F2").Select
    Selection.Delete Shift:=xlUp
    mais le pb reste le même

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Désolé mais même avec les $ ça ne fonctionne pas ni même avec $C$2

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui, c'est vrai, les $ ne servent à rien, désolé.
    Je viens de faire ça pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub test()
        Formule1 = Worksheets("Feuil2").Cells(4, 1).Formula
        Formule2 = Worksheets("Feuil2").Cells(4, 2).Formula
        Worksheets("Feuil1").Rows("1:2").Delete Shift:=xlUp
        Worksheets("Feuil2").Cells(4, 1).Formula = Formule1
        Worksheets("Feuil2").Cells(4, 2).Formula = Formule2
    End Sub
    C'est-à-dire que je sauvegarde les formules dans des variables avant de supprimer les lignes, et ensuite, je les remet.
    C'est un peu nul, j'avoue, mais ça m'énerve un peu, cette histoire...

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    En fait je voulais que le N° de ligne soit conservé dans la formule après suppression des lignes C'est à dire que je puisse supprime N lignes ou X ligne mais que dans ma formule j'attaque tjs la ligne 2 et non pas la ligne 2-nb de lignes supprimées. N'ayant pas trouvé j'ai contourné le pb pour ne plus avoir à faire des suppression de ligne( ce qui ne modifie donc plus mes formules.
    Bref encore un mystère de microsoft. Si jamais qqun trouve ...., n'hesitez pas a en faire part.
    Je vous remercie tous de votre aide.

  7. #7
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    (Le numéro du début reste le même, mais le numéro de fin va changer...)
    Sinon, mon idée de mémoriser les formules avant de faire les suppressions de lignes, puis de les remettre, ça ne t'a pas plu?

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

Discussions similaires

  1. [XL-2003] Comment utiliser les fonctions ESSBASE dans une macro excel ?
    Par kharon_rp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2010, 14h17
  2. [XL-2003] boucles dans une Macro Excel?
    Par answer3 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/12/2009, 20h07
  3. J'ai besoin faire un compteur dans une macro Excel
    Par sergio_gr66 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 11/06/2009, 17h25
  4. erreur d'execution '13' dans une macro Excel lors du passage 2003->2007
    Par Bobsinglar dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/10/2008, 15h16
  5. Impression d'un document Word fermé dans une macro Excel
    Par Le POlonais dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/11/2007, 10h00

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