Rentrer valeur dans un Tableau

Résolu
eeuuhh Messages postés 31 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour tout le monde,

Voici la macro :
Sub RenterValeursDansTableau()
Dim ab As Double
For ab = Cells(65536, 1).End(xlUp).Row To 1 Step -1
    If Cells(ab,4).Value = "1)" Then 
Cells(ab,4).row
    
    ....



End Sub


J'aimerai rentrer les -> Cells(ab,4).row dans un tableau.
Puis pendant qu'on y est ^^ comment on fait si je veux extraire la 2ieme donnée du tableau

Voila MErci d'avance
j'espére avoir été assez clair !
@+ le forum !
; )
Configuration: Windows XP
Internet Explorer 7.0

12 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    bonjour,
    tu tape Utilisation des tableaux dans ton aide et tu aurras tout les renseignement possibles sur les tableaux.
    A+
    0
  2. eeuuhh Messages postés 31 Statut Membre
     
    Rebonjour,

    OK MERCI lermite 222!
    Jvais prendre mon temps pour regarder tous ca !

    Allez @++
    0
  3. eeuuhh Messages postés 31 Statut Membre
     
    RE

    Voici un exemple de macro que j'ai réalisé :
    Sub RenterValeursDansTableau()
    Dim ab As Integer
    Dim tableau(2) As Integer
    Dim i As Integer
    Dim nonvide As Integer
    
    i=1
    nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    For ab = nonvide To 1 Step -1
        If Cells(ab, 3).Value = "a" Then
        Cells(ab, 3).Select
        Cells(ab, 3).Row = tableau(i)
        i = i + 1
        End If
        
    Next ab
    MsgBox tableau(1)
    
    End Sub
    


    Mais cette macro ne se compile pas et me dit "Nombre d'argument incorect ou affectation de propriété incorrect" sur la ligne suivante -> Cells(ab, 3).Row = tableau(i)
    :(
    0
  4. eeuuhh Messages postés 31 Statut Membre
     
    qq1 saurait d'ou vient le probléme ???

    Merci :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Si je comprend ce que tu veux au final...
    i=1
    nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    For ab = nonvide To 1 Step -1
        If Cells(ab, 3).Value = "a" Then
            tableau(i) = Cells(ab, 3).Row 
            i = i + 1
        End If
        
    Next ab

    mais si tu a plus de 2 lignes ca va encore se planter, il faut que T soit suffisament dimentionner
    Ex si tu a 100 ligne... Dim T(100)
    0
  7. eeuuhh Messages postés 31 Statut Membre
     
    Merci bien de m'avoir répondu Lermite !

    Si je veux faire la moyenne des valeurs contenue dans le tableau je dois écrire :
    Dim ab As Integer
    Dim tableau(200) As Integer
    Dim i As Integer
    Dim nonvide As Integer
    
    Dim moyenne as integer
    
    i=1
    nonvide = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    For ab = nonvide To 1 Step -1
        If Cells(ab, 3).Value = "3" OR "4" or "5" Then
            tableau(i) = Cells(ab, 3).Row 
            i = i + 1
        End If   
    Next ab
    
    
    For i = 200 to 1 step-1
    moyenne = i*(i+1)/i
    next i
    MsgBox moyenne
    
    end sud
    


    Je ne sais pas trop comment m'y prendre du fait que les 200 places dans le tableau ne sont pas nécessairement utilisées.

    Merci encore !
    ++
    0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Desespère pas ca commence à viendre... :-D
    Dim ab As Integer
    Dim tableau(200) As Integer
    Dim i As Integer, e as integer
    Dim moyenne as integer

    i=0
    For ab = 1 to ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    If Cells(ab, 3).Value >2 and Cells(ab, 3).Value <6 Then
    tableau(i) = Cells(ab, 3).value
    i = i + 1
    End If
    Next ab

    moyenne = 0
    For e =0 to i -1
    moyenne = moyenne +T(e)
    next e
    MsgBox moyenne/(e-1)
    0
  9. eeuuhh Messages postés 31 Statut Membre
     
    Ok merci lermite jvais analyser ta macro demain
    Au faite dans la macro à la place de la lettre "T" ce n'est pas plutot "Tableau" ??
    Sur ce bonne journée!!

    ++
    Thx
    Merci pr ta réponse !
    0
  10. eeuuhh Messages postés 31 Statut Membre
     
    Erf le calcul de la moyenne ne fonctionne pas :(
    J'ai essayé le mode pas à pas et le probléme vient de
    moyenne = moyenne +Tabluea(e)

    ++
    0
  11. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai retesté et ca fonctionne, sauf si pas de donnée correspondante.
    Ajoute ces lignes en dessous du Next ab

    If i = 0 Then
        MsgBox "Aucune donnée ne répond aux critères."
        Exit Sub
    End If

    et vérifie l'ortographe de >> +Tabluea(e)
    A+
    0
  12. eeuuhh Messages postés 31 Statut Membre
     
    [lol]
    Bin c'est la meilleur alors que ca fonctionne chez toi.

    Jtrouve ca vraiment bizarre que ca ne fonctionne pas

    Sub zaefaz()
    
    
    Dim ab As Integer
    Dim tableau(200) As Integer
    Dim i As Integer, e As Integer
    Dim moyenne As Integer
    
    i = 0
    For ab = 1 To 3
    If Cells(ab, 3).Value > 0 Then
    tableau(i) = Cells(ab, 3).Value
    i = i + 1
    End If
    Next ab
    If i = 0 Then
        MsgBox "Aucune donnée ne répond aux critères."
        Exit Sub
    End If
    moyenne = 0
    For e = 0 To i - 1
    moyenne = moyenne + tableau(e)
    Next e
    MsgBox moyenne / (e - 1)
    End Sub
    


    Les résultats que j'obtiens avec cette macro sont incohérents avec le résultat attendu ....
    Si tu vois qqchose qui ne va pas dans le code ci dessus ...

    merci encore!!
    +
    0
  13. eeuuhh Messages postés 31 Statut Membre
     
    J'ai mi les veriables en Double se ne change rien .
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Montre ce que tu a comme donnée dans C1,C2 et C3
      ET ARRETE DE CHANGER CONSTAMMENT LES CRITERES.

      EDIT:
      Pfffffffffttttttttttt
      Ta macro fonctionne.
      Vu qu'il n'y a pas de référence à la feuille tu doit mettre ta macro dans le module de la feuille
      double clic sur Feuil1 dans l'explorateur de projer et mettre la macto là.
      0