Probleme sur un programme qui regroupe l

Résolu
JP -  
 JP -
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

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. JP
       
      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
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. JP
       
      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
    2. JP
       
      avec mes mots*
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    4. JP
       
      ok je vois

      Merci pour les explication

      bonne journée
      0