Récupérer valeurs dynamique

Florian53

XLDnaute Impliqué
Bonjour à tous,

Désolé pour le titre peu explicite mais je ne vois pas trop comment formuler ma demande avec quelques mots.

Je voudrais récupérer et différencier des valeurs d'un tableau dynamique.

je suis désolé de pas en dire plus dans le message mais je n'arrive à l'expliquer clairement sans exemple.

Merci à vous
 

Pièces jointes

  • test.xlsm
    39.8 KB · Affichages: 32

Florian53

XLDnaute Impliqué
Bonjour à tous, après utilisation est comme indiqué par pierrejean je ne dispose pas du nombre de commutation mais du nombre de "Oui" divisé par 2.

Code:
Sub traitement()
tablo = Sheets("Feuil1").Range("A3:D" & Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row)
ReDim tabfin(3, 0)
tabfin(0, UBound(tabfin, 2)) = Range("A2")
lignes = 0
ok = True
off = True
For n = LBound(tablo, 1) To UBound(tablo, 1)
If tablo(n, 4) = "oui" Then lignes = lignes + 1
If off And tablo(n, 3) <> "" Then
    tabfin(2, UBound(tabfin, 2)) = tablo(n, 3)
    off = False
End If
  If tablo(n, 4) = "non" And tablo(n, 3) <> "" Then
     If ok Then
         tabfin(1, UBound(tabfin, 2)) = tablo(n, 3)
         ok = False
     End If
  End If
   If InStr(tablo(n, 1), "Cycle") <> 0 Then
      tabfin(3, UBound(tabfin, 2)) = (lignes) / 2
      lignes = 0
     ReDim Preserve tabfin(3, UBound(tabfin, 2) + 1)
     tabfin(0, UBound(tabfin, 2)) = tablo(n, 1)
     ok = True
     off = True
  End If
Next
tabfin(3, UBound(tabfin, 2)) = lignes / 2
Sheets("Feuil2").Range("A2").Resize(UBound(tabfin, 2) + 1, UBound(tabfin, 1) + 1) = Application.Transpose(tabfin)
Sheets("Feuil2").Select
End Sub

J'ai essayé d'enlever le "/2" mais sa ne fonctionne pas, en fait je pense qu'il faudrait compter le nombre de valeur " OFF" qui se trouve dans chaque cycle. mais je ne vois pas comment récupérer cette valeur.

Est ce que quelqu'un à une idée ?
 

Florian53

XLDnaute Impliqué
Bonjour à tous, après utilisation est comme indiqué par pierrejean je ne dispose pas du nombre de commutation mais du nombre de "Oui" divisé par 2.

Code:
Sub traitement()
tablo = Sheets("Feuil1").Range("A3:D" & Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row)
ReDim tabfin(3, 0)
tabfin(0, UBound(tabfin, 2)) = Range("A2")
lignes = 0
ok = True
off = True
For n = LBound(tablo, 1) To UBound(tablo, 1)
If tablo(n, 4) = "oui" Then lignes = lignes + 1
If off And tablo(n, 3) <> "" Then
    tabfin(2, UBound(tabfin, 2)) = tablo(n, 3)
    off = False
End If
  If tablo(n, 4) = "non" And tablo(n, 3) <> "" Then
     If ok Then
         tabfin(1, UBound(tabfin, 2)) = tablo(n, 3)
         ok = False
     End If
  End If
   If InStr(tablo(n, 1), "Cycle") <> 0 Then
      tabfin(3, UBound(tabfin, 2)) = (lignes) / 2
      lignes = 0
     ReDim Preserve tabfin(3, UBound(tabfin, 2) + 1)
     tabfin(0, UBound(tabfin, 2)) = tablo(n, 1)
     ok = True
     off = True
  End If
Next
tabfin(3, UBound(tabfin, 2)) = lignes / 2
Sheets("Feuil2").Range("A2").Resize(UBound(tabfin, 2) + 1, UBound(tabfin, 1) + 1) = Application.Transpose(tabfin)
Sheets("Feuil2").Select
End Sub

J'ai essayé d'enlever le "/2" mais sa ne fonctionne pas, en fait je pense qu'il faudrait compter le nombre de valeur " OFF" qui se trouve dans chaque cycle. mais je ne vois pas comment récupérer cette valeur.

Est ce que quelqu'un à une idée ?
 

Florian53

XLDnaute Impliqué
ça fonctionne très bien, merci.
Par contre est ce possible de faire un mix de la macro "Traite" et "Traite2" afin que les je ne perdre pas les informations de la macro "Traite" et que les informations se copie en feuil2 comme "Traite"?

Je souhaiterais avoir les informations de "traite2" dans la feuil2 en colonne "D" si possible.
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
479
Réponses
10
Affichages
394
Compte Supprimé 979
C

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD