Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

trier des donnees par colonne a l'ouverture d'un classeur

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 !

rainbow69006

XLDnaute Occasionnel
Bonjour

J'ai un petit souci.

(voir fichier joint)

J'ai un tableau qui est comme le tableau vert. mes cellules sont soit "vides" (de la forme =IF(AO7="","",AO7)) soit il y a quelque chose d'ecrit a l'interieur.

Je souhaiterais obtenir ce qu'il y a dans mon tableau jaune.
C'est a dire avoir un tri par colonne (avoir au debut tout ce qui est ecrit) qui soit remis a jour a l'ouverture de mon classeur.

Merci de votre aide
 

Pièces jointes

Re : trier des donnees par colonne a l'ouverture d'un classeur

Bonsoir

Pour que ce type de code ( If Cells(Lig...) fonctionne il faut activer la feuille "DONNEE"
La macro considère pour Cells la feuille active.

Solutions
écrire
Sheets("DONNEE").cells(lig.......

ou
With Sheets("DONNEE")
If .Cells(Lig... ( attention au point)


end with
ou
Sheets("DONNEE").Activate


JP
 
Dernière édition:
Re : trier des donnees par colonne a l'ouverture d'un classeur

Le probleme c'est que vu ce que je fais .

Il ne faut pas que la page Donnee s'ouvre. De plus je vais la cacher

Comment puis je faire sans etre obliger de l'ouvrir?

merci
 
Re : trier des donnees par colonne a l'ouverture d'un classeur

J'ai essayer sa: mais sa marque une erreur : ext without for

Sub creationsliens()

Sheets("DONNEE").Range("G2:AM595").ClearContents
Dim Col As Integer, Lig As Long, DerliG As Long
For Col = 1 To 33
For Lig = 2 To 595
' Colonne AP = 42 ème / G = 7ème
With Sheets("DONNEE") If Cells(Lig, 41 + Col) <> "" Then
DerliG = Cells(Rows.Count, 6 + Col).End(xlUp).Row
Cells(DerliG + 1, 6 + Col) = Cells(Lig, 41 + Col)
End If
Next Lig
Next Col

End Sub


et j'ai essayer sa : mais cela ne change rien
Sub creationsliens()

Sheets("DONNEE").Range("G2:AM595").ClearContents
Dim Col As Integer, Lig As Long, DerliG As Long
For Col = 1 To 33
For Lig = 2 To 595
' Colonne AP = 42 ème / G = 7ème
If Sheets("DONNEE").Cells(Lig, 41 + Col) <> "" Then
DerliG = Cells(Rows.Count, 6 + Col).End(xlUp).Row
Cells(DerliG + 1, 6 + Col) = Cells(Lig, 41 + Col)
End If
Next Lig
Next Col

End Sub

PS: Moi j'ai besoin d'un code ou je ne suis pas obliger d'ouvrir la feuille donnee

merci de ta patience
 
Dernière édition:
Re : trier des donnees par colonne a l'ouverture d'un classeur

Bonsoir

A tester
Sub creationsliens()
Dim Col As Integer, Lig As Long, DerliG As Long
With Sheets("DONNEE")
.Range("G2:AM595").ClearContents

For Col = 1 To 33
For Lig = 2 To 595
' Colonne AP = 42 ème / G = 7ème
If .Cells(Lig, 41 + Col) <> "" Then
DerliG = .Cells(Rows.Count, 6 + Col).End(xlUp).Row
.Cells(DerliG + 1, 6 + Col) = .Cells(Lig, 41 + Col)
End If
Next Lig
Next Col
end with
End Sub

JP
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…