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 :

Utilisation des données d'un tableau rempli dans une 1ère procédure et utilisation dans une autre procédure


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
    Homme Profil pro
    Ingénieur performance énergétique
    Inscrit en
    Janvier 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur performance énergétique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2016
    Messages : 1
    Par défaut Utilisation des données d'un tableau rempli dans une 1ère procédure et utilisation dans une autre procédure
    Bonjour à tous,

    Je souhaite créer une base de données utilisable facilement dans toutes mes procédures.

    Actuellement, j'ai utilisé un tableau pour qu'il contienne mes données à traiter à l'aide d'une procédure que j'ai appelé "création_base_données".
    Par la suite, je souhaite pouvoir effectuer des traitements sur cette base de données à l'aide de nouvelles procédures et je veux que ces traitements soient indépendant les uns des autres (cad, un traitement = une nouvelle procédure) pour pouvoir par la suite proposer au futur utilisateur les traitements de données possibles.

    Lorsque j'intègre le code de la deuxième procédure "sub confort été ()" (visible dans le code ci-dessous) dans la première procédure qui crée ma base de donnée, le code fonctionne et me fournit le bon résultat. Maintenant, lorsque je sépare les deux codes: la création de la base de données et le traitement de donnée proposé alors j'ai une erreur que je n'arrive pas à résoudre.

    Est-il bien possible d'utiliser les données d'un tableau remplit dans une procédure pour effectuer des opérations dessus dans une autre procédure?

    Auriez-vous une solution à mon problème?

    Je vous remercie par avance pour votre aide,

    Voici le code que j'ai écrit:

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
      Public tab_données() As Variant
      Public largeur_base_données As Integer, hauteur_base_données
     
     Public Sub création_base_données()
     
       largeur_base_données = Sheets("Données brutes").Range("BN10")
       'MsgBox largeur_base_données
       hauteur_base_données = Sheets("Données brutes").Range("A14").End(xlDown).Row
       'MsgBox hauteur_base_données - 14
     
     
        ReDim tab_données(hauteur_base_données - 14, largeur_base_données - 1)
     
        Dim i As Integer, j
     
        i = 0
     
        For i = 0 To hauteur_base_données - 14
        j = 0
                tab_données(i, 0) = Range("A" & i + 14)
     
                For j = 0 To largeur_base_données - 1
     
                    tab_données(i, j) = Range("A" & i + 14).Offset(0, j)
     
                 Next j
        Next i
     
       MsgBox "Nous allons maintenant vérifier le bon enregistrement de la base de donnée" & _
       " " & "Veuillez donner un numéro de ligne compris entre 0 et" & " " & hauteur_base_données - 14
     
       a = InputBox("Numéro de ligne ", "Title")
     
        MsgBox "Veuillez donner un numéro de colonne compris entre 0 et" & " " & largeur_base_données - 1
     
       b = InputBox("Numéro de colonne (1ère colonne <=> 0)", "Title")
     
     
        MsgBox tab_données(a, b)[/COLOR]
     
    Sub confort_été()
     
        Dim temperature As String, occupation
        Dim seuil As Integer
        Dim total As Integer
     
        temperature = Sheets("Résultats").Range("E32")
       ' MsgBox temperature
        seuil = Sheets("Résultats").Range("E40")
       ' MsgBox seuil
     
        'recherche d'une donnée dans une ligne et renvoie n°colonne
        Set occupation_ok = Sheets("Données brutes").Rows("12").Find("Occupancy")
        Set temperature_ok = Sheets("Données brutes").Rows("12").Find("temperature")
     
        'Test abscence donnée
        If occupation_ok Is Nothing Then
     
    '    numero_col = occupation_ok.Column
        MsgBox ("donnée non trouvée")
        Else
            numero_col_a = occupation_ok.Column
            MsgBox numero_col_a
        End If
     
        'renvoie numéro colonne pour le type de température à analyser
        If temperature_ok Is Nothing Then
     
              MsgBox ("donnée non trouvée")
        Else
            numero_col_b = temperature_ok.Column
            MsgBox numero_col_b
        End If
     
          ' hauteur_base_données - 14
        total = 0
         For i = 0 To hauteur_base_données - 14
     
             If tab_données(i, numero_col_b - 1) >= seuil And tab_données(i, numero_col_a - 1) <> 0 Then
                total = total + 1
     
             End If
     
          Next i
            MsgBox total
     
    End Sub

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Bonjour,
    Tu auras plus de chance d'avoir des réponses à ton problème VBA EXCEL en postant dans le bon forum.

    Je transfère !
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Utilisation des données d'un tableau
    Par beydibat dans le forum jQuery
    Réponses: 11
    Dernier message: 30/05/2013, 16h47
  2. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  3. Réponses: 1
    Dernier message: 12/12/2007, 10h35
  4. [C#] Utilisation des données dans un Thread
    Par Seth77 dans le forum C#
    Réponses: 12
    Dernier message: 24/10/2006, 14h14
  5. Insérer des données d'un tableau php dans une table mysql
    Par tom43 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/08/2006, 09h38

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