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

Copie de tableau avec condition

  • Initiateur de la discussion Initiateur de la discussion neho
  • 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 !

N

neho

Guest
Bonjour,

J'aimerais transférer les lignes d'un tableau d'un onglet A vers un tableau onglet B qui répondent a une condition : présence d'une suite de caractères dans une cellule de cette ligne. ( cette suite de caractère peut être "noyé" dans du texte ex: troi dans [troi]foire

J'espère avoir été clair😕

Merci d'avance
 
Re : Copie de tableau avec condition

Bonsoir Neho et bienvenu, bonsoir le forum,

Comme tu es nouveau ici, je te recommande de lire la
Lien supprimé du forum qui donne tous les bons plans pour obtenir de l'aide rapidement. Dans ton cas, un fichier exemple serait, comme toi, le bienvenu...
 
Re : Copie de tableau avec condition

Bonsoir Neho, bonsoir le forum,

Ton fichier n'est vraiment pas loquace... En pièce jointe une proposition avec une boîte d'entrée pour permettre à l'utilisateur d'indiquer le texte pour le critère de copie.
Le code :
Code:
Sub Macro1()
Dim be As Variant 'déclare la variable be (Boîte d'Entrée)
Dim t As Variant 'déclare la variable t (Tableau)
Dim i As Integer 'déclare la variable i (Incrément)
Dim tl() As Variant 'déclare le tableau de variables indexée tl (Tableau de Lignes)
Dim j As Integer 'déclare la variable j (incrément)
Dim z As Integer 'déclare la variable z (incrément)

be = Application.InputBox("Tapez le texte servant de critère.", "CRITÈRE", Type:=2) 'définit la boîte d'entrée be
If be = False Then Exit Sub 'si bouton "Annuler", sort de la procédure
t = Sheets("Feuil1").Range("A2").CurrentRegion 'définit le tableau t (l'ensemble des données de l'onglet "Feuil1")
For i = 1 To UBound(t, 1) 'boucle 1 : sur toutes les lignes du tableau t
    If t(i, 3) Like "*" & be & "*" Then 'condition : si la valeur en colonne C du tableu t contient le texte de la boîte d'entrée
        ReDim Preserve tl(2, j) 'redimensionne le tableau de variables indexées tl
        For z = 1 To 3 'boucle 2 : sur trois colonnes
            tl(z - 1, j) = t(i, z) 'récupère la valeur de la ligne en colonne z
        Next z 'prochaine colonne de la boucle 2
        j = j + 1 'incrémente j
    End If 'fin de la condition
Next i 'prochaine ligne de la boucle 1
If j = 0 Then 'si le tableau de variables indexées est vide
    MsgBox "Aucune ligne ne contient " & be & " !" 'message
    Exit Sub 'si le tableau est vide, sort de la procédure
End If
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
    .Range("A1").CurrentRegion.Clear 'efface les anciennes données de l'onglet "Feuil2"
    'place en A1 de l'onglet "Feuil2" le tableau de variables indexées transposé
    .Range("A1").Resize(UBound(tl, 2) + 1, 3) = Application.Transpose(tl)
    .Select 'sélectionne l'onglet
End With 'fin de la prise en compte de l'onglet "Feuil2"
End Sub
Le fichier :
 

Pièces jointes

Re : Copie de tableau avec condition

désolé de la réponse tardive mais je n'ai pas eu le temps "d'exceller" ces derniers temps

merci pour la réponse et le code qui m'a permis de réaliser ce que je voulais.
 
- 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
7
Affichages
684
Réponses
5
Affichages
370
Réponses
16
Affichages
504
Réponses
4
Affichages
309
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…