Microsoft 365 Comprendre le code VBA pour pourvoir modifier

blancolie

XLDnaute Impliqué
Bonjour,

j'aimerais qu'on m'explique code pour pouvoir le modifier .

VB:
Sub SaveZoneSaisieParFournisseur()

Dim Ws As Worksheet, WsFournisseur As Worksheet

Dim PlageZone As Range, CellZone As Range

Dim Ligne As Integer



Set Ws = ThisWorkbook.Worksheets("Zone de Saisie")

Set PlageZone = Ws.Range("A3:A" & Ws.Range("A5000").End(xlUp).Row)


For Each CellZone In PlageZone

    For Each WsFournisseur In ThisWorkbook.Worksheets

        If CellZone.Offset(0, 3) = WsFournisseur.Name Then

            Ligne = WsFournisseur.Range("B5000").End(xlUp).Row + 1

            With WsFournisseur

            .Cells(Ligne, 1) = CellZone.Offset(0, 2)

            .Cells(Ligne, 2) = CellZone.Offset(0, 1)

            .Cells(Ligne, 3) = CellZone.Offset(0, 5)

            .Cells(Ligne, 4) = CellZone.Offset(0, 4)

            .Cells(Ligne, 5) = CellZone.Offset(0, 6)

            End With

        End If

    Next WsFournisseur

Next CellZone

End Sub


je voudrais comprendre pour supprimer la colonne A et G

merci

je suis nul en vba
 

Pièces jointes

  • XLD_Blancolie_fleurissement 2_v00.xlsm
    54.8 KB · Affichages: 7

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir

Set PlageZone = Ws.Range("A3:A" & Ws.Range("A5000").End(xlUp).Row)

Leçon 1 : Si tu vois un Set de Range comme celui-là, si tu supprimes la colonne "A" c'est encore pire qu'un éléphant dans un magasin de porcelaine, vaut mieux utiliser un CaterPillar ça détruit tout plus proprement et l'éléphant ne risque pas de se blesser.
Il faut maîtriser le Set d'un Objet Range pour voir changer sa colonne source.


CellZone.Offset(0, 3)

Leçon 2 : Dès que tu vois un OffSet dans une boucle, tu peux être sûr d'avance que tout le code va s'effonder comme un château de cartes si tu supprimes une colonne !
Il faut maitriser le OffSet (Ligne, Colonne) pour pouvoir rétablir si tu enlèves des colonnes.

Bonne soirée
@+Thierry
 

Patrice33740

XLDnaute Impliqué
le ws colle devant fournisseur c'est quoi ?
C'est un préfixe.
Il est fortement conseillé de préfixer le nom des variables pour mieux comprendre le code.
Ici le codeur à utilisé ws pour Worksheet comme c'est indiqué au début du code :
VB:
Dim [...], WsFournisseur As Worksheet

A lire :
 

Pièces jointes

  • 3.2 Conventions de codage des variables VBA.pdf
    57.4 KB · Affichages: 15

jmfmarques

XLDnaute Accro
Bonjour
il faut bien commencer et trouver des explications pourccomprendre
Tout-à-fait.
Reste à déterminer la manière de "commencer" (et ce : quel que soit le domaine d'apprentissage).
Et je n'en connais personnellement qu'une seule valable : commencer par la connaissance des notions de base et fondements. Faire l'inverse (découvrir peu à peu ces notions au travers d'exemples) est le "meilleur" moyen de perdre du temps.;)

par analogie : la multiplication n'est rien d'autre qu'une série d'additions, mais il serait pour le moins maladroit (et source de perte de temps) de tenter de comprendre l'addition au travers d'exemples de multiplications.
 
Dernière édition:

Statistiques des forums

Discussions
314 492
Messages
2 110 190
Membres
110 695
dernier inscrit
fabriceseka