transposer la ligne dt la case C est non vide

  • Initiateur de la discussion Initiateur de la discussion Der-ru
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Der-ru

Guest
Bonjour, je suis niveau debutant en VBA, et j'essayer de transposer sur une nouvelle page la valeur des lignes de mon tableau dont la colonne C est non vide. Seul probleme mes valeurs ne sont affichés que pendant la boucle FOR est donc ne restent pas sur la nouvelle page. qui pourrait me donner un coup de main ?
Un grand merci par avance

Sub TRANSPOSE()

Sheets("aa").Select
For i = 1 To 30
If Cells(i + 1, 3) <> "" Then
Rows(i).Select
Selection.Copy
Sheets("bb").Select
Rows(i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, TRANSPOSE:=False
End If
Next

End Sub
 
Re : transposer la ligne dt la case C est non vide

Bonjour Der-ru et bienvenue 🙂,
Pas sûr d'avoir tout compris
Code:
Sub TRANSPOSE()
Dim I As Integer
With Sheets("aa")
For I = 1 To 30
If .Cells(I, 3) <> "" Then
.Rows(I).Copy
Sheets("bb").Columns(I).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, TRANSPOSE:=True
Application.CutCopyMode = False
End If
Next
End With
End Sub
ferait-il ton bonheur ?
Bon dimanche 😎
 
Re : transposer la ligne dt la case C est non vide

Bonjour à tous


La même chose (mais en formule matricielle, sans macro)

Sélectionner en feuille bb, la plage D3:AD3
Saisir la formule ci-dessous dans la barre de formule
Code:
=TRANSPOSE(aa!C4:C30)
et valider avec CTRL+SHIFT+ENTREE

ftranpose.jpg
 
Dernière édition:
Re : transposer la ligne dt la case C est non vide

Un grand merci a tous les deux mais je ne m’en sors pas quand même.

En fait je me suis mal exprimer. Transposer n’est pas le mot. Sur ma feuille AA, j’ai un tableau, 3 colonnes trente lignes. Les deux première colonnes sont entièrement remplies ce qui n’est pas le cas de la troisièmes où certaines lignes n’ont pas de valeurs.

Ce que je cherche à faire c’est tout simplement copier le tableau sans les lignes qui ont un trou. Néanmoins, je ne peux pas les supprimer sur mon premier tableau car les données étant construites à partir de la case précédente ca fausse tout.
J’espère que je suis plus claire … ?
 
Re : transposer la ligne dt la case C est non vide

Voila ca marche : j'ai du introduire une autre variable
Dim n As Integer
m = 1
With Sheets("aa")
For n = 1 To 30
If .Cells(n, 3) <> "" Then
.Rows(n).Copy
Sheets("bb").Rows(m).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, TRANSPOSE:=False
Application.CutCopyMode = False
m = m + 1
End If
Next
End With

UN GRAND MERCI
PS: est ce que je dois vraiment introduire la nature de n ? si je l'introduit pas c'est par defaut un entier non ?
 
Re : transposer la ligne dt la case C est non vide

Re

Si tu avais posté un fichier exemple (zippé et sans données confidentielles)
On pourrait mieux t'aider non ?

EDITION: après relecture de tes messages
si j'ai bien compris ce que tu veux faire, tu peux utiliser le filtre automatique
(voir code ci dessous)
(code testé sur la plage A4:C33 en Feuille aa
avec quelques cellules vides en C4:C33)

Code:
Sub a()
Dim pf As Range, plage_source, to_plage_destination As Range
Application.ScreenUpdating = False
Set to_plage_destination = Sheets("bb").Range("A4")

    With Sheets("aa")
        With .Range("C3")
            .Value = "XXXX"
            .AutoFilter 3, "<>"
        End With
        
    Set pf = .Range("_FilterDataBase")
    Set plage_source = _
            pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(12)

        plage_source.Copy to_plage_destination

    .AutoFilterMode = False
    .[C3] = Empty
    End With
    Application.CutCopyMode = False
End Sub

PS: test ok sur Excel 2000
 
Dernière édition:
Re : transposer la ligne dt la case C est non vide

Re 🙂,
PS: est ce que je dois vraiment introduire la nature de n ? si je l'introduit pas c'est par defaut un entier non ?
Non. Par defaut, c'est un Variant, autrement dit, n'importe quoi en attendant que tu mettes quelque chose dedans (Entier, décimal, date, texte, etc.).
D'où il est mieux de déclarer ce que tu vas mettre dedans, ça évite bien des surprises 😛...
Bonne fin de WE 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Retour