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

VB 6 et antérieur Discussion :

Comment connaitre la dernière position contenant une valeur d'un tableau ?


Sujet :

VB 6 et antérieur

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut Comment connaitre la dernière position contenant une valeur d'un tableau ?
    Salut
    J'ai un tableau à remplir au fur et à mesure, mais j'ai besoin de savoir à partir de quelle position pour ne pas écraser les données déjà présentes.

    Pour info, je ne dois pas utiliser de base de données pour ce projet.
    Je récupère chaque nouvelle valeur d'un textbox, que j'insère dans une listbox, et j'affecte toutes les valeurs de la listbox dans le tableau. C'est quand je recommence cette action que j'écrase les données du tableau.

    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
    'Déclarations
    Public TabNouvellesVilles(1 To MaxNbVilles) As String
    Dim i As Integer
    Dim nb_nouv_villes As Integer
    
    'Calcul du nombre de villes
    nb_nouv_villes = lst_nouvelles_villes.ListCount
    
    ' Si le tableau est vide
    If TabNouvellesVilles(1) = "" Then
       For i = 1 To nb_nouv_villes
          TabNouvellesVilles(i) = lst_nouvelles_villes.List(i)
       Next i
    
    'Si le tableau n'est pas vide
    ElseIf TabNouvellesVilles(1) <> "" Then
       For i = ? To ? + nb_nouv_villes
          TabNouvellesVilles(i) = lst_nouvelles_villes.List(i)
       Next i
    End If
    Merci

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    Que penses-tu de ça??
    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
     
    Dim i,j as Long
    Dim premiereplacelibre as Long
    'Etape1: retrouver la position de la première cellule vide
    premiereplacelibre = 0
    For i = 0 To nb_nouv_villes - 1
          if trim(lst_nouvelles_villes.List(i)) = '"" then
              premiereplacelibre  = i
              exit for
          end if
       Next i
    'Etape2: remplir le tableau
    For j = 0 To nb_nouv_villes -1
          TabNouvellesVilles(j+premiereplacelibre ) = lst_nouvelles_villes.List(i)
    Next i
    Petite remarque: revérifie plutôt 2 fois qu'une les index

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 71
    Points
    71
    Par défaut
    eclaircis nous un peu. est ce que ce que tu veux c'est recopier tous les elements de la listbox vers un tableau?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    AnneCa merci mais t'aurai pu expliquer aussi, tu cherche la dernière position de la listbox il me semble, mais je remet à zéro pr ne pas insérer les memes valeurs. Je voulais juste savoir si on pouvait compter le nbre de valeurs qu'il y a dans un tableau ou un truc du genre.. tu as compris mtn Mr NGANZI?

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 626
    Points
    16 626
    Par défaut
    compter le nbre de valeurs qu'il y a dans un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MeTableau() As String
    ReDim MeTableau(3 To 10)
    MsgBox "indice bas: " & LBound(MeTableau) & _
        "   indice haut: " & UBound(MeTableau) & vbCrLf & _
        "Nombre d'indice : " & UBound(MeTableau) - LBound(MeTableau) + 1
    si j'ai compris ce que tu voulais dire par valeurs

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    tu as pensé que je cherchais le nombre maximum d'élément que je peux insérer dans le tableau? qui est si simple à trouver acec ubound ? dans ton exemple ça va renvoyer 10 MAIS si le tableau contient que 4 valeurs/données je veux trouver 5 !

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    Hello!
    Je dirais que le nombre de valeurs dans le tableau est la valeur de ma variable premièreplacelibre -1 càd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Total = premiereplacelibre -1

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut J'ai un tableau à remplir au fur et à mesure...
    Bonjour Bassiste,

    Tu peux te servir de l'indice '0 de ton tableau pour garder la valeur du dernier indice ajouté dans ton tableau.
    J'explique et voir les rem
    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
     
    'Déclarations
     
    '1 d'abord mettre un indice '0 à ton tableau
    Public TabNouvellesVilles(0 To MaxNbVilles) As String
     
    '2 et ajouter une nouvelle variable j
    Dim i, j As Integer
    Dim nb_nouv_villes As Integer
     
    '3 initialiser l'indice '0 de ton tableau
    TabNouvellesVilles(0) = "0"
     
    'Calcul du nombre de villes
    nb_nouv_villes = lst_nouvelles_villes.ListCount
     
    ' Si le tableau est vide ,tu trouves la valeur 0 dans l'indice '0 du tableau
    If Val(TabNouvellesVilles(0)) = 0 Then
       For i = 1 To nb_nouv_villes
     
          '4 chercher l'indice du tableau dans l'indice '0 du tableau
          j = Val(TabNouvellesVilles(0)) + 1
          TabNouvellesVilles(j) = lst_nouvelles_villes.List(i)
     
          '5 mettre la nouvelle valeur dans l'indice 0 du tableau
          TabNouvellesVilles(0) = Str(j)
       Next i
        'Si le tableau n'est pas vide...un simple 'else suffit
              Else
       For i = 1 To nb_nouv_villes
     
          '6 chercher l'indice du tableau dans l'indice '0 du tableau
          j = Val(TabNouvellesVilles(0)) + 1
          TabNouvellesVilles(j) = lst_nouvelles_villes.List(i)
     
          '7 mettre la nouvelle valeur dans l'indice '0 du tableau
          TabNouvellesVilles(0) = Str(j)
       Next i
    End If

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    merci pr vos réponses

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

Discussions similaires

  1. Récuperer 3 dernières positions d'une valeur numerique
    Par sniper75 dans le forum Outils BI
    Réponses: 18
    Dernier message: 25/05/2012, 12h16
  2. Comment connaitre la position d'une valeur dans un spinner
    Par lupus83 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 04/04/2011, 08h00
  3. Réponses: 3
    Dernier message: 06/04/2006, 16h09
  4. Comment un JDialog peut me retourner une valeur ?
    Par scifire dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 15/03/2006, 16h07
  5. comment connaitre la memoire utilisée par une appli?
    Par afrikha dans le forum Autres Logiciels
    Réponses: 11
    Dernier message: 19/11/2005, 21h24

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