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 :

Code plus simple?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut Code plus simple?
    Voila le code que j'utilise pour faire une formule sur plusieurs lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With Worksheets("LGDVARIAB")
         .Cells(1, k + 4) = "Borne sup IC"
         .Cells(2, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(3, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(4, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(5, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(6, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(7, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(8, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
         .Cells(9, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
     
    End With
    Est il possible de remplacer les 1,2,3,4,,....par une variable qui s'incremente de 1 à 1 jusqu'a la fin
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i =1 to 15
    .Cells(i, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])"
    next i
    cette derniere formule ne marche pas je ne sais pas pourqoi...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    qu'est ce que tu obtient comme erreur, je l'ai tester elle marche parfaitement

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut code plus simple
    en fait cela marche tres bien :
    le probleme c'est que j'ai une trentaine de ligne a recopier donc je voulais savoir si cela eait possible en creant une variable i pour alleger le code.

    A chaque formule de ma feuille cree je recree une trentaine de ligne donc c'est un peu lord comme methode je trouve (meme si cela marche..)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Votre code peut fonctionner, mais le :

    ne semble pas être valable puisque lorsque la valeur de i est 1 vous affectez un texte et non une formule identique aux autres.

    à mon avis il faut donc indiquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Worksheets("LGDVARIAB")
         .Cells(1, k + 4) = "Borne sup IC"
         For i = 2 to 15
         .Cells(i, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])
         Next i
    End With"

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    j'avoue j'ai pas tres bien compris ce que tu veux faire envoi ta procedure en entier stp
    jacques_jean a raison pour la premiere cellule qui contient un string

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut nickel ca marche
    oui mais je ne comprends pas pourquoi ca ne marche pas avec du texte dans la premiere cellule...si texte cela est donc impossible d'appliquer cette methode?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas parce qu'il s'agit de texte pour la 1ère cellule c'est parce que pour toutes les autres cellules l'affectation est identique.

    Autrement dit vous pourriez aussi mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Worksheets("LGDVARIAB")
     
         For i = 1 to 15
            If i = 1
            .Cells(i, k + 4) = "Borne sup IC"
            Else
            .Cells(i, k + 4) = "=RC[-4]+1.96*RC[-3]/SQRT(RC[-2])
            End If
         Next i
    End With

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Par défaut ok merci
    compris merci...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/04/2015, 17h24
  2. Remplacer plein de ligne IF par un code plus simple
    Par Liloo14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/12/2012, 23h04
  3. Comment rendre plus propre ce code super simple svp ?
    Par frakosun dans le forum jQuery
    Réponses: 4
    Dernier message: 28/10/2009, 09h31
  4. Pipes => pas plus simple ?
    Par Jorus dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 17h53
  5. Format date : y'a forcément plus simple...
    Par ZERS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/12/2004, 15h28

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