A voir également:
- Erreur 13
- Fifa 13 - Télécharger - Jeux vidéo
- Test redmi note 13 5g - Accueil - Téléphones
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
2 réponses
Bonjour,
Il y a de nombreuses erreurs sur cette ligne :
1) Sheets
est un mot du langage VBA, pour éviter toute ambigüité de compilation, il est impératif ne ne pas utiliser les mots du langage pour nommer des variables.
2) if(" + Cells
toujours pour éviter les ambigüités lors de la compilation, il est préférable d'utiliser "&" plutôt que "+" pour concaténer des chaines de caractères
3) Cells(NbLigne + 1, CptCol - 3).Address(0, 0) <> 0
a pour résultat True ou False, le "<> 0" doit être intégré à la chaine de caractères
4) CptCol - 3).Adress(0, 0)
en VBA adresse prend 2 d (Address)
5) + "" +
ajoute un seul double cote , pour en ajouter 2 il faut écrire : & """" &
PS:
6) + ";" +
En VBA, avec formula, le séparateur d'argument est la virgule, i.e. & "," &
Cependant tu peux aussi écrire les formules dans le langage courant (français) en utilisant FormulaLocal.
Ce qui pourrait donner :
Cordialement
Patrice
Il y a de nombreuses erreurs sur cette ligne :
1) Sheets
est un mot du langage VBA, pour éviter toute ambigüité de compilation, il est impératif ne ne pas utiliser les mots du langage pour nommer des variables.
2) if(" + Cells
toujours pour éviter les ambigüités lors de la compilation, il est préférable d'utiliser "&" plutôt que "+" pour concaténer des chaines de caractères
3) Cells(NbLigne + 1, CptCol - 3).Address(0, 0) <> 0
a pour résultat True ou False, le "<> 0" doit être intégré à la chaine de caractères
4) CptCol - 3).Adress(0, 0)
en VBA adresse prend 2 d (Address)
5) + "" +
ajoute un seul double cote , pour en ajouter 2 il faut écrire : & """" &
PS:
6) + ";" +
En VBA, avec formula, le séparateur d'argument est la virgule, i.e. & "," &
Cependant tu peux aussi écrire les formules dans le langage courant (français) en utilisant FormulaLocal.
Ce qui pourrait donner :
Worksheets(NoSheet).Cells(NbLigne + 1, CptCol).Formula = "=if(" & Cells(NbLigne + 1, CptCol - 3).Address(0, 0) & "<> 0 ," & Cells(NbLigne + 1, CptCol - 1).Address(0, 0) & "/" & Cells(NbLigne + 1, CptCol - 3).Address(0, 0) & ","""")"
Cordialement
Patrice
Merci Patrice ca fonctionne en effet ! Pas toujours facile pour un stagiaire de trouver directement les bonnes formules et certaines choses m'ont échappé...surtout quand on galère pendant 2j...
Re,
Pour faciliter la détection d'erreur, tu peux utiliser une variable intermédiaire (en cas d'erreur tu peux voir la valeur de la variable dans la fenêtre variables locales)
Exemple :
Pour faciliter la détection d'erreur, tu peux utiliser une variable intermédiaire (en cas d'erreur tu peux voir la valeur de la variable dans la fenêtre variables locales)
Exemple :
formule = "=if(" & Cells(NbLigne + 1, CptCol - 3).Address(0, 0) & _ "<> 0 ," & Cells(NbLigne + 1, CptCol - 1).Address(0, 0) & _ "/" & Cells(NbLigne + 1, CptCol - 3).Address(0, 0) & ","""")" Worksheets(NoSheet).Cells(NbLigne + 1, CptCol).Formula = formule