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 :

Manipulation d'entiers avec VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 36
    Points
    36
    Par défaut Manipulation d'entiers avec VBA
    Bonsoir à tous,

    Je voudrais savoir comment on fait pour utiliser des entiers avec VBA.
    Par exemple, comment initialiser un entier à 0 et le modifier à chaque passage dans une boucle, puis mettre le résultat dans une certaine cellule.

    Imaginons une boucle qui lit les cellules de 2 vecteur-colonne, et qui en fasse la somme des produits terme à terme (j'espère que c'est clair...)
    Que faut-il modifier au code suivant (volontairement faux) ?

    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
    dim somme As Integer
     
    Somme = 0 'Là c'est foireux j'imagine...
     
    dim Cellule1 As Range
    dim Cellule2 As Range
     
    Set Cellule 1 = Range("A1")
    Set Cellule 2 = Range("B1")
     
    For i = 1 To 100
     
    Somme = Somme + cellule1.Value * Cellule2.Value
    Set Cellule1 = Cellule1.Offset(1,0)
    Set Cellule1 = Cellule1.Offset(1,0)
     
    Next i
    Merci pour votre aide !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    Non c'est tres bien ce que tu as écris.

    Par défaut, un entier est à zéro au début de la procédure donc la ligne soit disant foireuse n'est pas fausse mais juste inutile.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    Pfiou, je bloquais alors qu'il suffisait d'enlever la ligne superficielle

    Merci

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    bonsoir,

    ca marche comme l'a dit Coconut mais il y a plus simple et rapide sans manipuler les variables "range"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim somme as integer
    dim cptr as byte 'perso vieille école: je n'aime pas les variables à 1 caractère
     
    for cptr=1 to 100
       somme=somme+cells(cptr,1)*cells(cptr,2) 'value est la propriété par défaut
    next
    cordialement

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    J'ai envie de beurrer un peu plus épais sur la croute des habitudes de programmation.

    Les seules variables à une lettre qu'il m'arrive d'utiliser se sont les indices d'une variable tableaux i et j (pour deux dimensions) et c et r pour col et row dans une grille du genre FlexGrid, ou une table excel. C'est peut-être une mauvaise habitude, mais tant qu'elle est constante. Le tout, c'est de rester clair.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Michel_M
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       somme=somme+cells(cptr,1)*cells(cptr,2) 'value est la propriété par défaut
    next
    Ah, merci pour ce petit tuyau.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    pour Zazaraignée:

    Bien Chef, Oui, chef!

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

Discussions similaires

  1. gprolog : manipuler des entiers avec beaucoup de chiffres
    Par DavidleVrai dans le forum Prolog
    Réponses: 2
    Dernier message: 15/11/2012, 09h01
  2. [XL-2003] Manipuler des applications avec VBA
    Par setepenre dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/12/2010, 11h40
  3. [XL-2003] Manipulation de cellules avec VBA Excel
    Par stentorus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2009, 08h09
  4. manipuler des entier avec la virgule
    Par sky88 dans le forum Débuter
    Réponses: 6
    Dernier message: 16/01/2009, 13h47
  5. Manipulation d'un tableau sous Word avec vba
    Par Françoise Sagan dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/12/2006, 13h54

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