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 :

problemes tirer les formules excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut problemes tirer les formules excel
    je cherche à tirer les formules par le VBA...
    J'ai un probleme il me dit que la méthode de l'objet range global a échoué...
    voici mon 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    'Déclaration des variables
    Dim premiereligne, derniereligne, plage
    premiereligne = 20
    derniereligne = 565
     
    'Recherche de fin de fichier
    compteurligne = premiereligne + 1
    plage1 = ("20;565") '(lignes)
    plage2 = Range("31;79") '(colonnes)
     
        While ThisWorkbook.Worksheets("Feuille principale").Cells("premiereligne;derniereligne").Range("plage2") <> "Veuillez ne pas supprimer ces lignes"
        Wend
    derniereligne = compteurligne
                If premiereligne = 0 Then
            premiereligne = premiereligne + 1
     
    'Désactivation des filtres
    If ThisWorkbooks.Worksheets("Feuille principale").FilterMode = True Then
    ActiveSheet.ShowAllData
    End If
     
    'Destination des formules
     
    Selection.AutoFill Destination:=Range("plage2;derniereligne"), Type:=xlFillDefault
     
    End If
    Calculate
    End Sub
    merci

  2. #2
    RLX
    RLX est déconnecté
    Membre éclairé Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Salut melodyyy,

    Ben en fait comment dire, y a pas grand chose qui va dans ton code faudrait que tu revois un petit peu. Déjà mets des balises code c'est mieux

    Qu'est ce que tu veut faire avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     plage1 = ("20;565") '(lignes)
    plage2 = Range("31;79") '(colonnes)
    déjà il faut mettre deux point au lieu d'un ;

    ensuite tu déclare un compteurligne mais tu l'utilise pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     compteurligne = premiereligne + 1
    Tu fais des boucles qui font rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    While ThisWorkbook.Worksheets("Feuille principale").Cells("premiereligne;derniereligne").Range("plage2") <> "Veuillez ne pas supprimer ces lignes"
        Wend
    en supposant que ça fonctionne ça tourne en boucle infinie!!

    et je fais pas le détaille de tout.....

    Détail un peu plus ta logique de ce que doit faire ton prog

  3. #3
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    en fait, si il y'a un 0 dans la cellule il doit tirer la formules de cette celulle jusqu'en bas sachant que le fichier est très très gros et très très grand

  4. #4
    RLX
    RLX est déconnecté
    Membre éclairé Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Donc on avance un petit peu ce que tu veux faire c'est parcourir toutes les cellules de la plage de cellule et si le résultat de la formule dans cette cellule est 0 c'est prendre la formule. Mais tu veux la mettre où cette formule?

  5. #5
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    presque
    si dans la cellule 20 (premiereligne) j'ai un 0, alors il prend la formule qui est dans cette cellule etil la tire jusqu'a à la fin du fichier

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Est ce que tu comprends ce qu'est une boucle, une variable ?
    Est ce que tu as compris ce que fait la fonction Range ?

  7. #7
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Bonjour,

    Moi, je me servirai dans un premier temps de l'éditeur de macro pour coir déja ce que donne le code

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je te conseille de regarder les tutoriaux sur VBA, et les concepts de la programmation, parce que la je pense que tu n'as même pas compris ce qu'était une boucle. Et si je me trompe alors dis moi ce que c'est.

  9. #9
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    oui voila mais ma 1ere macro à faire c'est celle la j'y peux rien...

    Quand à la boucle, c'est une macro qui détermine que l'ont doit continuer à anvancer tant que ce qui est vrai n'est pas trouvé.
    Il y'a plusieurs sorte de boucle, je te parle de la mienne, elle fonctionne comme ça.

    Donc tant qu'elle pas trouvé le 0 dans la case, elle avance, continue. Si elle trouve alors elle étend la formule jusqu'en bas du fichier, d'ou la recherche de fin de fichier

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Salut,

    Sur Excel, je ne crois pas qu'il y ai une fin de fichier (peut-être 999999)
    Menfin je pense pas que tu veuilles aller jusque là.

    Je n'ai pas compris cette phrase

    Si elle trouve 'un 0' alors elle étend la formule jusqu'en bas du fichier
    Si je comprends tu veux recopier la formule qui se trouve dans la cellule ou se trouve la value zéro sur cette même colonne mais sur les lignes du dessous jusqu'à arriver "à la fin du ficher excel"

    Voici ce que je ferais

    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
    Sub recopie()
     
     
    Dim i As Integer
    Dim j As Integer
     
    i = 1
     
    Range("E" & i).Select
    Do While (ActiveCell.Text <> 0 And i < 100)
        i = i + 1
        Range("E" & i).Select
    Loop
     
    If (i < 100) Then
        For j = i To 100
            Selection.AutoFill Destination:=Range("E" & j, "E" & (j + 1)), Type:=xlFillDefault
            Range("E" & j + 1).Select
        Next j
    End If
     
    End Sub

  11. #11
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    ça revient un peu au même que ce que je fais nan ?
    moi je désactive les filtres aussi

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut
    Si je comprend bien ce que tu as essayé de faire :

    Ton fichier excel comprend 565 lignes, et commence a la 20ème ligne
    Tu as 48 colonnes : de 31 à 79

    Ce que je comprend pas c'est ce que ta boucle est censé faire...
    Ta cellule qui doit contenir 0, c'est laquelle ? la cellule de la ligne 20, colonne 31?
    ou alors n'importe quelle cellule de la ligne 20 entre la colonne 31 et la 79 ?



    Pour Tazmania : Un fichier excel comprend 65536 lignes...

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2012, 14h15
  2. probleme dans une formule[excel]
    Par lumbroso dans le forum Excel
    Réponses: 5
    Dernier message: 19/06/2007, 06h54
  3. Tirer les formules avec boucle et condition excel
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/10/2006, 15h11
  4. Delphi et les formules Excel
    Par defluc dans le forum Delphi
    Réponses: 2
    Dernier message: 28/06/2006, 11h38
  5. [][Excel] Comment ne pas détruire les formules ?
    Par flyangelNext dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2003, 11h38

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