Probleme sur un programme qui regroupe l

Résolu/Fermé
JP - 9 mars 2012 à 09:59
 JP - 9 mars 2012 à 13:33
Bonjour,

voila j'ai récupérer sur ce site un programme
qui me permet de ranger à la suite des autre des valeur dans une colonne mais j'ai voulu l'arranger à ma sauce. mais j'ai deux problème:
le premier est que je veux que sa parte chercher les valeur dans la colone B de la feuille "EXTRACTION" pour me les restituers sur la colone A de ma feuille "POIDS PAR ELEMENT" à partir de la cellule A2
Le deuxième est qu il me restitue pas la dernière valeur de la colone B

Voici le petit programme récupéré ici

Sub rassemble()
Dim TablColB, TablColA(), i As Long, Lig As Long

TablColB = Sheets("EXTRACTION").Range("B2", Sheets("EXTRACTION").Range("B" & Rows.Count).End(xlUp))
'ici commence le travail en mémoire...
For i = LBound(TablColB) To UBound(TablColB)
If TablColB(i, 1) <> "" Then
ReDim Preserve TablColA(Lig)
TablColA(Lig) = TablColB(i, 1)
Lig = Lig + 1
End If
Next
'restitution
Sheets("POIDS HA PAR ELEMENT").Range("A2").Resize(UBound(TablColA), 1) = Application.Transpose(TablColA)
End Sub


A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
Modifié par pijaku le 9/03/2012 à 10:16
Salut,
Tiens ce code me dit quelque chose...
Content qu'il soit utile.

Ton tableau TablColA étant une varaiable tableau à une dimension, commence à l'indice 0. On a donc tendance à oublier un élément.
Change donc :
Sheets("POIDS HA PAR ELEMENT").Range("A2").Resize(UBound(TablColA), 1) = Application.Transpose(TablColA)  

Par :
Sheets("POIDS HA PAR ELEMENT").Range("A2").Resize(UBound(TablColA) + 1, 1) = Application.Transpose(TablColA) 

Cordialement,
Franck P
0
Inpécable merci

Si ce n'est pas trop exagérer ça veux dire quoi des chiffee 1 de :
Sheets("POIDS HA PAR ELEMENT").Range("A2").Resize(UBound(TablColA) + 1, 1) = Application.Transpose(TablColA)

cordialement
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
9 mars 2012 à 10:33
Resize pour toi c'est Ok?
Donc tu resize de :
1- (Ubound(TablColA) + 1 = nombre de ligne du resize
2- , 1) = nombre de colonnes... ici tu resize sur une seule colonne.
0
Ok en gros avec mes mos
Resize(UBound(TablColA) + 1 = nombre de ligne ou il va ya avoir les donner de ma colonne B
2- , 1) = et ici le 1 veux dire que je bosse sur une seule colone 'la colonne A
0
avec mes mots*
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
9 mars 2012 à 11:21
sur une seule colonne oui, mais pas forcément la colonne A...
Sheets("POIDS HA PAR ELEMENT").Range("Z2").Resize(UBound(TablColA) + 1, 1) = Application.Transpose(TablColA)

On a bien le 1, mais ça n'est pas la colonne 1, mais la colonne Z...
Ok?
0
ok je vois

Merci pour les explication

bonne journée
0