Bonjour le fil, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim S As Worksheet 'déclare la variable S (onglet Source)
Dim D As Worksheet 'déclare la variable D (onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim NL As Integer 'déclare la variable NL (Nombre de Lignes)
Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Set S = Worksheets("SynthRFQ") 'définit l'onglet S
Set D = Worksheets("Feuil1") 'définit l'onglet D
D.Range("A1").CurrentRegion.ClearContents 'efface d'éventuelles anciennes données dans l'onglet D
TV = S.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
NL = UBound(TV, 1) 'définit le nombre de lignes NL du tableau des valeurs TV
NC = UBound(TV, 2) 'définit le nombre de colonnes NC du tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To NL 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
If TV(I, 1) > 999 Then 'condition : si la donnée ligne I colonne 1 de TV est supérieure à 999
ReDim Preserve TL(1 To NC, 1 To K) 'redimensionne le tableau des lignes TL (autant de lignes que TV a de colonnes, K colonnes)
For J = 1 To NC 'boucle 2 : sur toutes les colonnes du tableau des valeurs TV
TL(J, K) = TV(I, J) 'récupère dans la ligne J de TL la valeur en colonne J de TV (= Transposition)
Next J 'prochaine colonne de la boucle 2
K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
End If 'fin de la condition
Next I 'prochaine ligne de la boucle 1
'si K est supérieure à 1, renvoie dans A1 redimensionnée de l'onglet D, le tableau TL transposé
If K > 1 Then D.Range("A1").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
D.Activate 'active l'onglet D
End Sub