Valeurs trouvées par VBA ne s'affichent pas
Orange
-
Orange -
Orange -
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
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
A voir également:
- Valeurs trouvées par VBA ne s'affichent pas
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel ne pas afficher #valeur ✓ - Forum Excel
- Excel compter cellule couleur sans vba - Guide
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
1 réponse
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/
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/
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