Explication ligne de code VBA

cathodique

XLDnaute Barbatruc
Bonjour,

Je voulais répondre à une discussion à peu similaire à un problème que j'avais rencontré. Pour donner quelques explications sur le code, je bute sur cette ligne de code: le 3 après End correspond à XlUp mais j'ai oublié que signifie (2) qui précède le .Resize
Code:
Sheets("FBD.PC").Cells(Rows.Count, 1).End(3)(2).Resize(UBound(T_Report, 1), UBound(T_Report, 2)) = T_Report

J'ai beau cherché dans l'aide je ne suis pas parvenu à trouver une explication.
Autre chose, comment trouver la correspondance numérique de certaines syntaxes vba.
ex: XlUp=3

En vous remerciant par avance.
 

belkacem_64

XLDnaute Junior
Salut

La Numéro 2 représente le déplacement avec 2 cellule après le dernier rangée
--------------------
Pour la question comment trouver la correspondance numérique de certaines syntaxes vba. ex: XlUp=3

Essayez d'écrire la ligne suivante
Range("A1").End
Maintenant, lorsque vous tapez ( après le mot End Vous remarquerez 3 Options , Chaque option représente un nombre
 

cathodique

XLDnaute Barbatruc
Merci beaucoup Belkacem_64 pour tes explications.
J'ai perdu le fil de la discussion mais voici le fichier.
Il ou elle cherchait à transférer des données d'une feuille à une autre avec une disposition différente.
en effet, la feuille suivi cde est sous forme de bd alors que la feuille bon de cde à une entête et un tableau.
code complet
Code:
Option Explicit

Sub Transfert()
    Dim i&
    Dim Plg As Range, PLg_EnTete As Range
    Dim T_EnTete As Variant, T_Data As Variant, T_Report As Variant

    Application.EnableEvents = False
    Application.ScreenUpdating = False          'désactive mise à jour écran

    With Sheets("Bon de cde")
        Set Plg = .Range(.Cells(8, 1), .Cells(.Rows.Count, 1).End(3).Offset(, 3))
        T_EnTete = .Range("A1:D5")
    End With
    T_Data = Plg
    ReDim T_Report(1 To UBound(T_Data, 1), 1 To 6)

    For i = LBound(T_Data, 1) To UBound(T_Data, 1)
        T_Report(i, 1) = T_EnTete(1, 4)           'n° bon de commande
        T_Report(i, 2) = CDate(T_EnTete(3, 4))      'date de demande
        T_Report(i, 5) = T_EnTete(5, 2)        'N° Affaire

'        'On boucle sur les colonnes du tableau T_Report
        T_Report(i, 3) = CStr(T_Data(i, 1))       'ref interne
        T_Report(i, 4) = T_Data(i, 2)       'Désignation produit
        T_Report(i, 6) = T_Data(i, 3)        'quantité

    Next i
     
    Sheets("Suivi cde").Cells(Rows.Count, 1).End(3)(2).Resize(UBound(T_Report, 1), UBound(T_Report, 2)) = T_Report

    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
Pour le 2 je n'ai pas encore bien compris.
Encore merci
 

Pièces jointes

  • Suivi cde 2016.xlsm
    23.2 KB · Affichages: 50

cathodique

XLDnaute Barbatruc
Bonjour Job75,

Merci beaucoup pour ton astuce. Aurais-tu une autre explication pour le (2) qui précède Resize de la ligne de code ci-dessous:
Code:
Sheets("Suivi cde").Cells(Rows.Count, 1).End(3)(2).Resize(UBound(T_Report, 1), UBound(T_Report, 2)) = T_Report
En vous remerciant.
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu