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 :

tirage formules en VBA avec excel


Sujet :

Macros et VBA Excel

  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 tirage formules en VBA avec excel
    voila je voudrais lui dire en VBA:

    si j'ai un 0 dans la première ligne (variable première ligne), alors tire la formule de cette cellule jusqu'a la dernière ligne (variable dernière ligne).
    Sachant que je n'ai pas un 0 dans toutes les cellules...

    le reste, avec le compteur tout ça nikel c'est juste ça que j'arrive pas à lui dire...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par melodyyy
    voila je voudrais lui dire en VBA:
    si j'ai un 0 dans la première ligne (variable première ligne), alors tire la formule de cette cellule jusqu'a la dernière ligne (variable dernière ligne).
    A qui tu parles ?
    Si j'ai bien compris, tu veux recopier vers le bas ("jusqu'a la dernière ligne") la formule située dans une cellule dont la cellule suivante est vide, ou = 0
    Mais tu dis aussi
    "Sachant que je n'ai pas un 0 dans toutes les cellules..."
    D'où la question : Veux-tu aussi remplacer les valeurs des cellules non vides ? Je pense que non, donc la copie devra se faire uniquement sur les cellules ayant un 0.
    Là, tu as plusieurs solutions mais dis déjà ce qu'il en est
    Question subsidiaire : Si tu recopies vers le bas, est-ce toujours la valeur de la dernière cellule renseignée ou mets-tu dans toutes les cellules "=0" la même valeur ou formule ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut essaie un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    dim i as integer  'numero ligne
    dim fin as integer ' numero derniere ligne
     
    for i=1 to fin
     
    if (cells(i,numcolonne).value=0) then
     
    cells(i,numcolonne).value=formule
     
    end if
     
    next i
    un truc du style

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Oui, ou un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim i as integer  'numero ligne
    dim fin as integer ' numero derniere ligne 
    for i=1 to fin
         if (cells(i,numcolonne).value=0) then
              cells(i,numcolonne).value=cells(i-1,numcolonne).value
         end if
    next i

  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
    je veux juste la formule, , le 0 m'interesse pas excel adaptera je le sais, juste un F9 et hop tout est recalculé

    Si tu veux les cellules ayant un 0 sont en ligne: et je veux tirer la formule en colonne, donc pas de modification des autres cellules en lignes

  6. #6
    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
    y'a un truc qui me choc, ton numcolonne tu lui met la 1ere ou la dernière colonne ? parce que j'a plusieurs colonnes

  7. #7
    Invité
    Invité(e)
    Par défaut


    Si je peux me permettre, "NumColonne" est le numéro de la colonne dans laquelle se trouve la formule à recopier vers le bas !

    Cordialement.

  8. #8
    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
    ok super a la différence que la ça ca pas ça me colle juste le

    moi je voudrais la formulz parce que ça donnera pas partout

    mais nikel ça m'aide vachement

  9. #9
    Invité
    Invité(e)
    Par défaut
    ouskel'n'or parle de value,
    hors comme son nom l'indique on recopie des valeurs et non des formules !

    Il y'a beaucoup plus pratique et rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("C1:C26").Select
        Selection.FillDown
    Et là le contenu de la cellule C1 est reportée dans les autres, que ce soit une valeur ou une formule !

    Voilà

  10. #10
    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
    avec ton code il me dit que le type défini par l'utilisateur non défini

    en fait ça marche une fois, si j'étins tout excel, je le rallume ça marche, mais si je modifie le numéro de la colonne ça marche plus, même si je remet l'ancien...c'est snifant

    pourtant j'ai tout mis...

    le probleme est à dim as integer 'numéro de ligne
    j'ai mis 20 et il en veut pas, j'ai changé il en veut pas non plus....

  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
    euh pour te répondre nan, parce que mon fichier est super grand, que c'est du linéaire, je sais je voulais le faire comme ça, mais la personne avec qui je bosse veut pas, parce que ça allourdit la macro, donc nan...j'ai pas le droit...

  12. #12
    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
    ah oui et surtout que tout mes débuts de colonnes n'ont pas de 0 donc voila

  13. #13
    Invité
    Invité(e)
    Par défaut
    Ton problème est réglé ?

  14. #14
    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
    nan nan, parce que j'ai des problèmes de déclaration de variable,
    et il copie la valeur pas la formule

  15. #15
    Invité
    Invité(e)
    Par défaut
    Tes réponses n'étaient pas clair, je ne savais pas à qui ou à quoi tu répondais !

    A la place de "value" il faut mettre "formula"

    Voilà

  16. #16
    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 change pas ma déclaration de variable

    quand je met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim i as integer
    i = 20
     
    dim fin as integer
    fin= 565
    ça marche pas, la macro s'active mais dans le vide...

    je progresse un peu en VBA pi j'avoue grace au site

  17. #17
    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
    ah pi ma formule contient un $ VBA en veut pas....

    autrement dit appeler la formule c'est galère

  18. #18
    Invité
    Invité(e)
    Par défaut
    [QUOTE=melodyyy]avec ton code il me dit que le type défini par l'utilisateur non défini[QUOTE]
    Ce n'est pas normal, tu dois avoir un problème dans ton code !?

    en fait ça marche une fois, si j'étins tout excel, je le rallume ça marche, mais si je modifie le numéro de la colonne ça marche plus, même si je remet l'ancien...c'est snifant
    Qu'elle numéro de colonne !?
    Veux dire sélection dans la Colonne "C" de la ligne "1" à la ligne "26"

    pourtant j'ai tout mis...
    Oui mais pas comme il faut

    le probleme est à dim as integer 'numéro de ligne
    j'ai mis 20 et il en veut pas, j'ai changé il en veut pas non plus....
    Donnes ton code pour voir !

  19. #19
    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
    si tu veux dans mon fichier j'ai pas une formule dans toutes les cellules de la ligne 20. Donc si j'ai une formule je la descends sinon ben nan logique...

    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
    dim i as integer
    i = 20
    dim fin as integer
    fin = 565
    for i = 1 to fin
     
    if (cells(i,145).formula = formula = SI($F20 <>"";SI(ESTNUM(AK20);AK20*$F20;0);AK20))Then ' il veut pas du $ caractère incorrect pour lui'
    cells (i,145).formula=cells(i-1,145).formula
     
    end if
     
    next i
     
    end sub

  20. #20
    Invité
    Invité(e)
    Par défaut
    si tu veux dans mon fichier j'ai pas une formule dans toutes les cellules de la ligne 20. Donc si j'ai une formule je la descends sinon ben nan logique...
    Descendre la valeur d'une cellule vide = toujours une cellule vide
    Donc pour moi tester si la cellule est vide ou non, je ne vois pas trop l'intérêt !

    De plus ton code est faux puisque si j'ai bien compris,
    il faut que tu te déplaces dans chaque colonnes de la ligne 20

    Ce qui donne comme code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim NumCol , DerLigne as Integer
    DerLigne = 565
    For NumCol = 1 to 256
    ' Balaie chaque cellule de la ligne 20 pour chaque colonne
      If (Cells(20,NumCol).value <> "" Then
        Range(Cells(20, NumCol), Cells(DerLigne, NumCol)).FillDown
      End If
    Next i
    Ca devrait aller mieux

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2010] Fonction Chr() dans VBA avec Excel 2010
    Par Frenchie_lol dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/06/2010, 22h20
  2. Cherche formule de calcul avec Excel
    Par NEC14 dans le forum Excel
    Réponses: 8
    Dernier message: 05/03/2009, 07h57
  3. formule de calcul avec Excel 2007
    Par linel dans le forum Excel
    Réponses: 1
    Dernier message: 22/02/2009, 09h05
  4. [Formule] Calcul Heures AVEC EXCEL
    Par JLDEB dans le forum Excel
    Réponses: 2
    Dernier message: 16/04/2007, 17h08

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