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 :

lecture de tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut lecture de tableau
    Bonjour,
    J'ai crée un tableau virtuel avec Visual Basic à partir de données d'Excel et j'aimerais pouvoir lire des valeurs dans ce tableau et écrire les résultats sur Excel. Voici plus de détails:


    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
    Sub calcul_distance()
     
    Dim distance(7999, 7999) As Single
    Dim i As Integer
    Dim k As Integer
     
     
        For i = 5 To 8004
            For k = 5 To 8004        
            distance(i - 5, k - 5) = ((Cells(i, 2) - Cells(k, 2)) ^ 2 + (Cells(i, 3) - Cells(k, 3)) ^ 2 + (Cells(i, 4) - Cells(k, 4)) ^ 2) ^ 0.5 - (Cells(i, 5) + Cells(k, 5))
     
            Next k
        Next i
     
    End Sub

    Je lis des données d' Excel avec lesquelles j'effectue un calcul. Les résultats de ce calcul sont stockés dans le tableau distance(7999, 7999) qui a une dimension 7999*7999 mais que je n'écris pas dans Excel. J'aimerais pour chaque ligne de ce tableau trouver le nombre de valeurs <0 et écrire ce nombre sur Excel dans une colonne qui aura donc une dimension 7999*1.

    Merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour flofly6

    Tout d'abord bienvenu

    Je ne sais pas si j'ai bien compris, donc je te soumets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If ((Cells(i, 2) - Cells(k, 2)) ^ 2 + (Cells(i, 3) - Cells(k, 3)) ^ 2 + (Cells(i, 4) - Cells(k, 4)) ^ 2) ^ 0.5 - (Cells(i, 5) + Cells(k, 5)) < 0 Then compte = compte + 1
    If k = 8004 Then Sheets("Feuil2").Cells(a, 1).Value = compte: compte = 0: a = a + 1
    à mettre dessous....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    distance(i - 5, k - 5) =.....
    et avant Il faut modifier "Feuil2", et l'adapter à la destination. Je n'ai pas testé

    Eric

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonsoir,

    tu peux essayer
    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
     
    Sub calcul_distance()
     
    Dim distance(7999, 7999)
    Dim resultat()
    Dim i As Integer
    Dim k As Integer
    Dim j As Integer
     
        For i = 5 To 8004
            For k = 5 To 8004
                distance(i - 5, k - 5) = ((Cells(i, 2) - Cells(k, 2)) ^ 2 + (Cells(i, 3) - Cells(k, 3)) ^ 2 + (Cells(i, 4) - Cells(k, 4)) ^ 2) ^ 0.5 - (Cells(i, 5) + Cells(k, 5))
                    If distance(i, k) < 0 Then
                        j = j + 1
                        ReDim Preserve resultat(j)
                    End If
            Next k
        Next i
    For i = 1 To UBound(resultat)
      Cells(i, 10) = resultat(i)
    Next i
     
    End Sub
    d autre part sachant que de nombreux calcul sont réalisé , je passerai
    par un variant pour stocker l ensemble de ta plage (8000 ligne , 6 colonne)

Discussions similaires

  1. [Tableaux] lecture du tableau $_FILE
    Par gforce dans le forum Langage
    Réponses: 12
    Dernier message: 05/06/2007, 17h02
  2. Lecture de tableau par pointeur
    Par SPACHFR dans le forum Débuter
    Réponses: 7
    Dernier message: 16/05/2007, 16h43
  3. Réponses: 3
    Dernier message: 05/02/2006, 22h59
  4. erreur de lecture de tableau incompréhensible
    Par Anouschka dans le forum C++
    Réponses: 2
    Dernier message: 27/01/2006, 13h40
  5. C++ et lecture de tableau
    Par ero-sennin dans le forum C++
    Réponses: 17
    Dernier message: 31/10/2005, 23h42

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