dimensionner un tableau tampon

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

K

kiskool

Guest
Bonjour le forum,

ca fait quelque 2 ans que j'ai quitté ce forum (qui a beaucoup changé !!) et que je ne touche plus au VBA mais aujourd'hui c'est le grand jour ... j'ai à nouveau besoin de votre aide pour un ti problème basic.

J'ai juste besoin de dimensionner un tableau VB en dynamique. voici mon code (simplifié) non testé à cause du bug sur la table:

Sub init()

dim Last As Integer
Windows('BNPP A & S Reporting installation.xls').Activate
Range('D2').Select
Last = Range('d65536').End(xlUp).Row

Dim Table() As Integer

For i = 1 To Last
If ActiveCell.Offset(0, i) <> '' Then

AJOUTER UNE LIGNE DE 3 COLONNES A MA TABLE...
(ou la redimensionner en Table (i,2) avec conservation des données)

Table(i, 0) = ActiveCell.Offset(0, i)
Table(i, 1) = ActiveCell.Offset(1, i)
Table(i, 2) = ActiveCell.Offset(2, i)
End If
Next i

End Sub

Vous l'avez compris je veux juste mettre mes colonnes D, C et E dans une table tampon pour les recoller ailleurs. L'outils de données externes ne fonctionnent pas et le 'collage spécial avec lien non plus'...

Merci d'avance
 
Bonjour KissKool, re Creepy, le Forum

Je me souviens de toi KissKool 😉 ça fait un bail déjà

Bon pour la réponse de Creepy, il manque un truc si tu ne veux pas devenir enragé LOL

Option Explicit

Sub init()
Dim Table() As String
Dim Last As Integer
Dim i As Integer, x As Integer
Dim Col As Byte

'Windows('BNPP A & S Reporting installation.xls').Activate

Last = Range('A65536').End(xlUp).Row

For i = 1 To Last
&nbsp; &nbsp;
If Cells(i, 1) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp;
ReDim Preserve Table(3, x)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table(0, x) = Cells(i, 1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table(1, x) = Cells(i, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table(2, x) = Cells(i, 3)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x = x + 1
&nbsp; &nbsp;
End If
Next i

'Exemple Pour Renvoyer le Tableau Dynamique dans un New WorkBook
Workbooks.Add
For i = 0 To UBound(Table, 2)
&nbsp; &nbsp;
For Col = 0 To 2
&nbsp; &nbsp; &nbsp; &nbsp; Cells(i + 1, Col + 1) = Table(Col, i)
&nbsp; &nbsp;
Next Col
Next i


End Sub


En effet sans PRESERVER tu risques de te demander pourquoi tu n'as qu'une seule ligne dans ton Tableau...

Bon Aprèm
[ol]@+Thierry[/ol]
 
MERCI à tout les deux. C'est exactement ce que je cherchais !

En effet, en lisant la réponse de Creepy je me souvenais qu'il manquais un truc pour ne pas effacer le contenu du tableau lors du redimensionnement.

Je viens d'arriver dans cette boite et je risque de devoir écrire encore quelques petites macros pour me simplifier la vie, alors surement à bientôt...

++
Kiskool ou Sylsyl (au choix)
 
- 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

  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
980
Réponses
5
Affichages
818
Réponses
57
Affichages
5 K
Retour