Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion wampus
  • 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 !

W

wampus

Guest
Bonjour à tous 🙂

Jeune débutant en VBA j'ai quelques difficultés pour m'y retrouver dans mes tableaux 😕

Je viens soliciter votre aide si vous le voulez 😱

Je vous explique mon problème et vous joint mon fichier.

J'ai un tableaux à 7 colonnes. Dans la colonne E nommé Etat se trouve des cellules contenant de 0 à 4 lettres. Le but étant de trier ce tableau en deux parties grâce aux données de cette colonne.

J'aimerais trier mon tableau comme ceci:

Toutes valeur commençant par AA... ou AN... de la colonne E vont dans le tableau Tableau 1 et toutes le reste dans le Tableau 2.

N'ayant pas réussit a utiliser la concaténation dans ma boucle je me suis amuser a réécrire toutes les valeurs de cette colonne a coté et je compare les éléments à cette colonne pour essayer de les trier.

Mon deuxième problème se trouve au niveau de ma copie des cellules du tableau car je n'arrive pas à prendre toute la ligne contenant les données.

J'ai commenté mon code du mieux que je pouvais. Je suis à l'écoute de tout conseil, proposition.

J'espère que vous pourrez m'aider.

Merci à tous 🙂
 

Pièces jointes

Re : Tri de tableau

bonjour wampus

Vois si cela te convient

Code:
Sub Tri()
Dim n As Integer
For n = 5 To Range("B65536").End(xlUp).Row
  If Left(Range("E" & n), 2) = "AA" Then
    Range("B" & n & ":H" & n).Copy Destination:=Range("J65536").End(xlUp).Offset(1, 0)
  Else
    Range("B" & n & ":H" & n).Copy Destination:=Range("R65536").End(xlUp).Offset(1, 0)
  End If
Next n
End Sub
 

Pièces jointes

Re : Tri de tableau

Waou merci beaucoup pour la réponse très rapide j'essaye de faire ça depuis déjà beaucoup d'heure... ^^

C'est exactement ce que je souhaitais que ça génère sauf que le tableau 1 contient bien les cellules avec les valeurs commençant par AA mais pas par AN.

Mais si j'ai compris j'ai juste à faire quelque chose comme ca 😕
 
Re : Tri de tableau

Bonjour à vous et à pierrejean de Limas,
J'ai seulement rajouté le "AN" manquant
Sub Tri()
Dim n As Integer
For n = 5 To Range("B65536").End(xlUp).Row
If Left(Range("E" & n), 2) = "AA" Or Left(Range("E" & n), 2) = "AN" Then
Range("B" & n & ":H" & n).Copy Destination:=Range("J65536").End(xlUp).Offset(1, 0)
Else
Range("B" & n & ":H" & n).Copy Destination:=Range("R65536").End(xlUp).Offset(1, 0)
End If
Next n
End Sub
 
Re : Tri de tableau

Bonsoir wampus,

Pierrejean 🙂🙂

Bonsoir, Youki(BJ)

une autre solution...

Code:
Sub tri()
Dim Derlig As Long
Derlig = [B65000].End(xlUp).Row
Range("B4:H" & Derlig).Name = "base"
Range("I5").FormulaR1C1 = "=OR(LEFT(RC5,2)=""AA"",LEFT(RC5,2)=""AN"")"
Range("Q5").FormulaR1C1 = "=AND(LEFT(RC5,2)<>""AA"",LEFT(RC5,2)<>""AN"")"
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "I4:I5"), CopyToRange:=Range("J4:P4"), Unique:=False
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "Q4:Q5"), CopyToRange:=Range("R4:X4"), Unique:=False
Union(Range("I5"), Range("Q5")).Clear
End Sub
 
Re : Tri de tableau

Super merci pour vos réponses 🙂

J'avais une autre petite question j'ai fais une macro pour importer un tableau d'un autre fichier excel et qui demande à l'utilisateur de choisir le fichier source en ayant une fenetre ouverture de fichier. Tout fonctionne sauf quand je clique sur Annuler. La ca me lance une popup erreur debogage ...

Voici mon code en gros :

fileToOpen = Application.GetOpenFilenam
Workbooks.OpenText Filename:=fileToOpen
Dim nomFichier As String
nomFichier = Filename

Et je voulais savoir si vous pouviez me donner une petite piste pour faire la même chose que le code pour trier mes tableaux mais que ca envois le résultat sur une autre feuille ?

Merci de m'avoir aidé .
 
Re : Tri de tableau

Re bonsoir,

le click sur "Annuler"

fileToOpen = Application.GetOpenFilename
On Error Resume Next
Workbooks.OpenText Filename:=fileToOpen
If Err > 0 Then Exit Sub 'ou traiter
Dim nomFichier As String
nomFichier = Filename
 
Re : Tri de tableau

Merci Youky,

les deux méthodes fonctionnent mais je ne comprends pas pourquoi, quand je clique sur Annuler ça lance une fenêtre voulez-vous enregistrer les modifications apporté a ....

Et quand je clique sur Annuler de cette fenêtre il me lance un message d'erreur à nouveaux.

Alors je pense que cela doit venir du faite que je créé des cellules avec des données dedans comme la date avant d'ouvrir un fenêtre pour ouvrir un fichier du coup il me demande si je veux sauvegarder...

Existe t il un moyen de stopper la macro en même temps que l'on clique sur Annuler et que cela ne quitte pas l'appli ?

Merci encore.
 
- 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
20
Affichages
634
Réponses
2
Affichages
246
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
253
Réponses
5
Affichages
321
  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
299
R
  • Question Question
Réponses
3
Affichages
122
regis6460
R
Réponses
1
Affichages
270
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…