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

Transfert d'un tableau rapidement en VBA

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

MJ13

XLDnaute Barbatruc
Bonjour à tous

J'ai un tableau en feuille 1 que je voudrais transférer en feuille2, mais si la colonne E contient un 5. Comment le transférer en VBA le plus rapidement sans utiliser de filtre élaboré?


J'hésite entre les variables Tableau, le scripting dictionnary, mais c'est pas trop mon fort ces concepts 😱.

Merci d'avance.
 

Pièces jointes

Re : Transfert d'un tableau rapidement en VBA

Bonjour à toutes et à tous.

Si j'ai bien compris , je trie par la colonne E et je copie la plage de cellules avec 5 en colonne E dans la deuxième feuille.
Copier uniquement les valeurs .

J'espère ne pas être à côté de la plaque.

A+
 
Re : Transfert d'un tableau rapidement en VBA

Module de Feuil2:
VB:
Option Explicit
'

Private Sub Worksheet_Activate()
Dim Ve As Variant, Vs() As Variant, Ls As Long, Le As Long, C As Long
Ve = Feuil1.[Tablo].Value
ReDim Vs(1 To UBound(Ve, 1), 1 To 5) As Variant
Ls = 0
For Le = 1 To UBound(Ve, 1)
   If Ve(Le, 5) = 5 Then
      Ls = Ls + 1: For C = 1 To 5: Vs(Ls, C) = Ve(Le, C): Next C
      End If
   Next Le
Me.[A2].Resize(65535, 5).ClearContents
Me.[A2].Resize(Ls, 5).Value = Vs
End Sub
À+
 
Re : Transfert d'un tableau rapidement en VBA

Bonjour Dranreb, Laetitia, Néné, Papou

Merci pour vos solutions. En effet je ne veux pas toucher au tableau de ma feuille 1.

J'ai ben noté que le scripting dictionary ne convient pas (d'où mon inculture sur le sujet 😱).

Les solutions de Dranreb et Papou fonctionnent parfaitement. Cela m'a l'air ultrarapide 🙂.

Encore merci, mais je ne m'y ferais jamais avec ces tableaux, mais j'espère pouvoir reprendre vos codes 😕

Bonne journée 🙂.
 
Re : Transfert d'un tableau rapidement en VBA

rebonjour tous ;
une autre facon de l'ecrire sans Option Base
mais bon!! le code de l'ami papou🙂 me semble plus rapide sur des grandes plages

Code:
Dim t As Variant, t2() As Variant, x As Long, i As Long, k As Long
Sub Tri()
On Error Resume Next
Application.ScreenUpdating = False
t = Range("a2:e" & Cells(Rows.Count, 1).End(xlUp).Row)
x = 1
For i = 1 To UBound(t)
If t(i, 5) = 5 Then
ReDim Preserve t2(1 To 5, 1 To x)
For k = 1 To 5
t2(k, x) = t(i, k)
Next k: x = x + 1: End If: Next i
Sheets(2).Range("a2").Resize(UBound(t2, 2), UBound(t2, 1)) = Application.Transpose(t2)
Erase t, t2
End Sub
 
Re : Transfert d'un tableau rapidement en VBA

Re

Merci laetitia 🙂.

Il est aussi très bien ton code et en plus, j'ai presque compris 😱.

Avec tout ces codes, j'ai matière à travailler les tableaux sans trop me prendre la tête (enfin j'espère).

Bonne continuation à tous sur XLD 🙂.
 
- 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

Réponses
10
Affichages
512
Réponses
2
Affichages
528
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…