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 :

Numero de ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 1
    Par défaut Numero de ligne
    Bonjour à toutes et à tous,

    je viens vers vous afin de trouver un peu d'aide sur un code VBAexcel que je n'arrive pas à terminer. Je suis actuellement étudiante en physique et je n'ai que des bases en informatique et en codage VBA, mais voilà mon projet de semestre nécessite quelques traitements VBAexcel et j'avoue me sentir complètement perdue. J’espère qu'ici je pourrais trouver l'aide dont j'ai besoin pour enfin avancer.

    Voilà ce que je veux faire :

    Dans ma colonne M j'ai un temps écoulé (en seconde) qui va de 1s à 277s, sur les 277 premières lignes. Ensuite dans les lignes suivantes ce chiffre revient (1 a 277).
    Pour chaque ligne dans la colonne C j'ai une coordonnée différente et dans la colonne F un poids.

    J'aimerai que le code détecte toutes les lignes ou la même valeur en seconde est inscrite dans la colonne M, et qu'il me permette de faire la moyenne des coordonnées pour lesquels la valeur en seconde est la même et que celle ci soit pondérée par leur poids correspondant.


    Ce que j'ai fais :

    La pondération etant une difficulté supplémentaire j'ai déja essayé de faire sans pondération :


    voila 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub modulomoyenne()
     
     
    Dim cell As Range
     
     
    Dim Trouve As Double, PlageDeRecherche As Range
    Dim Valeur_Cherchee As String, AdresseTrouvee As String
     
     
     
     
    Dim tpsi As Double
    Dim rmsi As Double
    Dim xi As Double
    Dim tpsj As Range
    Dim rmsj As Double
    Dim k As Integer
    Dim i As Integer
     
    For i = 2 To 277
    tpsi = Cells(i, 13)
    xi = Cells(i, 3)
     
    Valeur_Cherchee = tpsi
    Set PlageDeRecherche = ActiveSheet.Range("M278:M416")
    Set tpsj = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
    k = Range(Valeur_Cherchee).Row
    rmsj = cell(k, 7)
    xj = cell(k, 3)
     
    If tpsj Is Nothing Then
    i = i + 1
    Else
    cell(i, 14) = (xi + xj)/2
    i = i + 1
     
    End If
     
     
    Next i
     
     
    End Sub

    Problème :

    Mon principal problème c'est que ok, il va me chercher la valeur de temps qui correspond mais moi j'aimerai connaître sa ligne pour que je puisse prendre la bonne cellule correspondante au coordonnées que je veux moyenner.



    J'éspère vraiment que l'un d'entre vous pourra m'éclairer et je vous en remercie par avance.

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour et bienvenue au forum,
    Je n'ai pas très bien compris de quelle cellule tu voulais obtenir la ligne, mais pour connaître la ligne d'une cellule, on utilise la propriété Row :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set maCellule = Range("B1")
    MsgBox maCellule.Row       'affichera 1
    MsgBox maCellule.Column  'affichera 2
    Par contre, as-tu vraiment besoin de passer par VBA pour faire cette moyenne ? Il y a des outils sur Excel qui te permettent de le faire sans problème (des outils que tu peux ré-utiliser en VBA sans devoir ré-inventer une fonction, si tu dois absolument passer par VBA)
    --> SOMMEPROD te permet de faire une somme pondérée ET une somme avec condition
    Nom : moyenne pondérée.png
Affichages : 99
Taille : 22,7 Ko

Discussions similaires

  1. [VBA-E] Récupérer le numéro de ligne où se trouve un bouton
    Par Freiya dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/01/2011, 23h06
  2. [VB.Net] Repeater numero de ligne et data
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/10/2005, 10h20
  3. Récuperer le numero de ligne dans un RichEdit
    Par nbutin dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/05/2005, 12h40
  4. Recuperer le numero de ligne d'une exception Python
    Par chrdou dans le forum Général Python
    Réponses: 4
    Dernier message: 28/02/2005, 16h58
  5. Réponses: 2
    Dernier message: 19/05/2004, 10h13

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