Comment ça marche

jeje49

XLDnaute Nouveau
Bonjour,

J'ai intégré une entreprise il y a deux ans.Mon predécesseur maitrisait à merveille excel, moi je n'y comprend rien.
Il a laissé les outils qu'il utilisait pour travailler et j'essais de comprendre comment il fonctionne.
Sur le fichier joint je voudrais savoir comment il mets à jours les valeurs de la colonne G de la feuille F1 à partir des informations contenu dans le feuille F2 colonne F.
Les valeurs n'étant pas dans le même ordre il faut mettre à jour les valeurs en fonction des codes article.

Merci pour votre aide.
 

Pièces jointes

  • REAPPRO2.zip
    291.5 KB · Affichages: 447
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Comment ça marche

Bonjour,

Probablement la MàJ se fait-elle dans le UserForm qui s'affiche quand on clique sur le bouton "MAJ" de la feuille "F1".
Mais vu que tu ne nous as pas donné le UserForm en question, je ne crois pas qu'on puisse t'en dire plus pour l'instant.

Quant à l'ordre d'affichage sur la feuille "F1", il dépend du tri effectué actuellement dans la colonne "A".
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Comment ça marche

Bonjour à tous

Le classeur contient des macros (et notamment un userform) dont voici le code VBA

EDITION: en fait il contient juste 2 macros.


Code:
Private Sub UserForm_Activate()
Dim a, b, Nb_lignes_F1, Nb_lignes_F2 As Integer
Nb_lignes_F1 = Sheets("F2").Range("K1")
Nb_lignes_F2 = Sheets("F2").Range("K2")
BAR.Min = 1
BAR.Max = Nb_lignes_F1
For a = 2 To Nb_lignes_F1
    For b = 2 To Nb_lignes_F2
        If Sheets("F1").Cells(a, 4) = Sheets("F2").Cells(b, 1) Then
            Sheets("F1").Cells(a, 7) = Sheets("F2").Cells(b, 6)
            b = 3000
        End If
    Next b
    BAR.Value = a
Next a
Unload Me
End Sub

Si tu ne maitrises pas Excel, tu ne dois pas non plus connaitre le VBA ?

On se lance quand même dans les explications du code ?

NB: Quand j'ai ouvert ton fichier, chez moi Excel s'est crashé ...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Comment ça marche

Re


Marcel32 (bonjour)
J'ai bien un userform dans la PJ pas toi?
(voir mon précédent message)

Il semblerait que l'userform soit juste une barre de progression, non ?

NB: A la première ouverture, Excel s'est craché.
A la seconde j'ai pu accéder au projet VBA.

PS: J'ouvre toujours les fichiers Excel sans activer les macros.
 

TooFatBoy

XLDnaute Barbatruc
Re : Comment ça marche

Bonjour Staple1600,

J'ai modifié mon message précédent pendant que tu postais le tien.

Non, je n'ai apparemment pas le UserForm dans le fichier, du coup il m'ouvre un UserForm de base, vide.
Mais il y a bien le code, ainsi que tu l'as dit.



[edit]
Si tu dis que c'est une ProgressBar, c'est peut-être bien ça le problème du UserForm chez moi : il me dit qu'il ne peut l'ouvrir car l'objet n'est pas présent sur ma machine. Sans doute est-ce la ProgressBar en question qui manque.
[/edit]
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Comment ça marche

Re


Voila l'userform que j 'ai dans VBE
(et on peut remarquer qu'il s'agit bien d'une barre de progression : cf nom du contrôle :ProgressBar2)

01reappro.png
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Comment ça marche

Re


Dans ce cas, est-ce que tu comprends cette partie du code
For a = 2 To Nb_lignes_F1
For b = 2 To Nb_lignes_F2
If Sheets("F1").Cells(a, 4) = Sheets("F2").Cells(b, 1) Then
Sheets("F1").Cells(a, 7) = Sheets("F2").Cells(b, 6)
b = 3000
End If
Next b
 

jeje49

XLDnaute Nouveau
Re : Comment ça marche

Bonjour,
hier
Ce que je ne comprend pas pourquoi mets t'on Cells(a, 4) alors que la valeurs est en D9?

Et comment fonctionne la boucle pour contrôler toutes les lignes du fichier.

Re


Dans ce cas, est-ce que tu comprends cette partie du code
For a = 2 To Nb_lignes_F1
For b = 2 To Nb_lignes_F2
If Sheets("F1").Cells(a, 4) = Sheets("F2").Cells(b, 1) Then
Sheets("F1").Cells(a, 7) = Sheets("F2").Cells(b, 6)
b = 3000
End If
Next b
 

camarchepas

XLDnaute Barbatruc
Re : Comment ça marche

Bonjour à tous ,

allez je me lance dans une explication :

Code:
'Boucle sur les lignes de la feuille 1
For a = 2 To Nb_lignes_F1
' pour chacune des ligne de la feuille 1 parcours les lignes de la feuille 2
For b = 2 To Nb_lignes_F2
'si dans la feuille F1 la cellule de la ligne courante dans la colonne D est égale à la cellule de la feuille 2 de la colonne A
If Sheets("F1").Cells(a, 4) = Sheets("F2").Cells(b, 1) Then
'alors la cellule G ligne courante feuille 1 = cellule F de la ligne courante de la feuille 2 
Sheets("F1").Cells(a, 7) = Sheets("F2").Cells(b, 6)
'Force B à 3000 pour sortir de la boucle par anticipation ( un Exit for ) est surement plus judicieux
b = 3000
End If
'continu boucle b si boucle pas finie
Next b 
''continu boucle a si boucle pas finie
next a
 

TooFatBoy

XLDnaute Barbatruc
Re : Comment ça marche

Je me permet de répondre uniquement sur ce point précis ;) :
Ce que je ne comprend pas pourquoi mets t'on Cells(a, 4) alors que la valeurs est en D9?
Dans Cells(a,4) 4 est une valeur fixe qui représente le numéro de la colonne, et a est une variable qui représente le numéro de la ligne.

La quatrième colonne, c'est la colonne D.
a étant une variable, elle peut prendre par exemple la valeur 9, et dans ce cas Cells(a,4) c'est la même chose que Cells(9,4), ce qui équivaut à Range("D9").
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
446

Statistiques des forums

Discussions
312 779
Messages
2 092 046
Membres
105 168
dernier inscrit
makari69