Transposition avec macro ?

Bonjour voici un tableau ou je voudrais créer une macro qui me permettrais de choisir les élements "D" ainsi que cette ligne entière , à recopier sans la couleur de fond dans la feuille 2 , pouvez vous m'aider ? merci

https://www.excel-pratique.com/~files/doc2/BzpsaClasseur1.xls

Dois-je reformuler ma demande ?

Bonsoir,

Oui, avec un fichier un peu + étoffé

Claude.

Alors donc je voudrais qu'une macro puisse me sélectionner les lettres "D" qui se trouvent dans la colonne "C" et qu'elle copie toute la ligne qui contient cette lettre "D" et sans la couleur de fond et sur la feuille 2.

https://www.excel-pratique.com/~files/doc2/YmZ0GClasseur1.xls

re,

Pas assez étoffé !

même pas d'en-têtes !

se sera toujours la lettre D ?

se sera toujours la colonne C ?

j'ai pas envie de refaire x fois la macro,

reviens quand tu sera prêt

Amicalement

Claude.

Ok on verra demain, merci.

Salut le forum

Une solution donnée par Roger2327 sur un autre forum

Sub sélectionner_D_dans_colonne_C()
Dim oDat, sDat, i As Long, j As Long
   With Sheets("Feuil1")
      oDat = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 3)).Value
   End With
   ReDim sDat(1 To 4, 1 To 1)
   For i = 1 To UBound(oDat, 1)
      If oDat(i, 3) = "D" Then
         For j = 1 To UBound(sDat, 1)
            sDat(j, UBound(sDat, 2)) = oDat(i, j)
         Next j
         ReDim Preserve sDat(1 To 4, 1 To 1 + UBound(sDat, 2))
      End If
   Next i
   sDat = Application.Transpose(sDat)
   With Sheets("Feuil2")
      .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 3)).ClearContents
      .Range(.Cells(1, 1), .Cells(-1 + UBound(sDat, 1), 4)).Value = sDat
      .Activate
   End With
End Sub

Mytå

Merci à lui, mais j'aimerais bien avoir un site ou tout ceci serait expliqué car avec un pas à pas je n'y arrive pas.

Alors voici mon code.

Sub sélectionner_des_lettres_dans_colonne_C()
Dim i As Long, j As Long, n As Long, oList
oList = Array("G/3/04") ' Liste des lettres à sélectionner.
j = 325
For n = 0 To UBound(oList)
For i = 1 To 200
If Sheets("passage").Cells(i, 6).Value = oList(n) Then
j = j + 1
Sheets("Feuil2").Range(Sheets("Feuil2").Cells(j, 1), Sheets("Feuil2").Cells(j, 10)).Value = _
Sheets("passage").Range(Sheets("passage").Cells(i, 1), Sheets("passage").Cells(i, 10)).Value
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End If
Next i
Next n
End Sub

Il fonctionne pour ce que je veux en faire mais j'ai un soucis.

Il me copie bien les lignes désirées, cette macro sera utilisée chaque jours et donc j'ai constaté qu'en changeant la date qui se trouve à la fin de chaque ligne il m'efface la date précédemment collée. Je voudrais donc que quand la date est différente qu'il me copie les lignes en dessous des autres. Sachant que la date est sous format (standard) 03/10 et en colonne 10.

Rechercher des sujets similaires à "transposition macro"