Valeurs trouvées par VBA ne s'affichent pas

Fermé
Orange - 19 juil. 2018 à 15:41
 Orange - 20 juil. 2018 à 09:16
Bonjour,

Je débute sur VBA et bloque complètement sur ce problème.
J'ai ci-joint un code VBA qui assigne des valeurs de cellules de la feuille 6 rangées par colonnes à des cellules de la feuille 7 rangées par lignes, le tout sous certaines conditions.
Ce code fonctionne *presque* comme je le souhaite, il me rend les résultats escomptés. J'ai pu vérifier cela à l'aide de MsgBox greffés dans la boucle while, les valeurs des cellules de la feuille 7 sont les bonnes. Pas de souci à ce niveau là.

En revanche, quand je vais sur la feuille 7, rien dans mes cellules. La couleur du texte est en noir et le format à nombre. J'ai relu et relu mon code je n'arrive pas à pointer l'erreur du doigt. Sur les forums rien non plus. Il se peut très probablement que l'erreur soit toute bête mais en attendant mes résultats ne s'affichent pas.

Un oeil expert pourrait-il m'aider et chercher à savoir si l'erreur vient de mon code ?
Merci d'avance,

Orange

Public Sub Test()
Dim LignePersonnel As Long
Dim NbTypePersonnel As Long
Dim Colonne As Long
Dim Ligne As Long
Dim TypePersonnelFeuille6 As Integer
Dim AdresseMateriel As String
Dim AdressePersonnel As String
Dim LigneMateriel As Integer
Dim CompteurTypePersonnel As Integer


TypePersonnelFeuille6 = 6 'On initialise la colonne des types de personnels à la colonne 6 de la feuille 6
Colonne = 83
Ligne = 21
CompteurTypePersonnel = 0 'On l'initialise à 0, pas encore de type

AdresseMateriel = Worksheets(7).Cells.Find(What:="MATERIEL", LookIn:=xlValues, LookAt:=xlPart).Address ' On cherche l'adresse de la cellule avec le titre Materiel
AdressePersonnel = Worksheets(7).Cells.Find(What:="PERSONNEL", LookIn:=xlValues, LookAt:=xlPart).Address ' On cherche l'adresse de la cellule avec le titre Personnel
LigneMateriel = Range(AdresseMateriel).Row 'On trouve la valeur numérique de la ligne de la cellule titre Materiel
LignePersonnel = Range(AdressePersonnel).Row 'On trouve la valeur numérique de la ligne de la cellule titrePersonnel
NbTypePersonnel = LigneMateriel - LignePersonnel - 1 'La différence des deux lignes moins 1 donne le nombre de types de personnel comptés dans ce tableau et dont on doit enregistrer le nombre

While CompteurTypePersonnel < NbTypePersonnel 'Tant qu'il y a encore un type de personnel qui rentre en jeux dans le chantier
Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value = 0 'On réinitialise ici à 0 avant de recalculer la valeur - pas dans l'application suivante de ce code
CompteurTypePersonnel = CompteurTypePersonnel + 1 'On passe au premier type
TypePersonnelFeuille6 = TypePersonnelFeuille6 + 1 'On passe au premier type
If Sheets(6).Cells(20, TypePersonnelFeuille6).Interior.color = RGB(49, 49, 49) Then 'Si la colonne ne correspond pas à une colonne comptant le nombre de personnel d'un type
TypePersonnelFeuille6 = TypePersonnelFeuille6 + 1 'On saute la colonne sur la feuille 6 en ajoutant +1 à la variable colonne
Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value = Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value + Sheets(6).Cells(Ligne + 4, TypePersonnelFeuille6).Value 'On ajoute le nombre de personnel du type au comptage du nombre d'un type par jour
Else: Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value = Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value + Sheets(6).Cells(Ligne + 4, TypePersonnelFeuille6).Value 'On fait la même chose sans sauter de colonne
End If
B = Sheets(7).Cells(LignePersonnel + NbTypePersonnel, Colonne).Value 'vérification du résultat par affichage
MsgBox B
Wend
End Sub



1 réponse

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709
19 juil. 2018 à 16:15
Bonjour,

Un fichier a dispo serait le bienvenu pour nous afin de vous aider!!!!!!

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

ou
'mon partage
https://mon-partage.fr/
0
Bonjour,
J'ai suivie votre conseil mais en refaisant un classeur avec des pommes et des carottes, et j'ai trouvé mon erreur ! Je vous le mets en copie au cas où cela vous intéresserait. Merci encore ! https://www.cjoint.com/c/HGuhoeBDetm
0