Une bonne macro, une !
Vava869
-
sipherion Messages postés 1809 Date d'inscription Statut Membre Dernière intervention -
sipherion Messages postés 1809 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Ayant d'énormes tableaux et peu de temps pour les traiter, je me suis lancé dans la confection d'une macro.
Pour résumer, mes tableaux sont des arborescences qui ressortent avec des cases manquantes identifiées.
J'ai donc fais une boucle qui identifie les erreurs, celle-ci fonctionne.
Je dois utiliser une rechercheV, pour aller chercher les valeurs manquantes dans un autre onglet du même fichier.
j'ai donc parcouru divers forum et topic, pour au final me retrouver coincer. J'ai essayer d'utiliser la fonction VLookUp ou de passer par la voix "traditionnelle" en décomposant chaque étape de la recherchev en sous fonction.
Etant débutant sous VBA, je pense avoir pas mal d'erreur dans ma syntaxe ou dans la façon que j'ai de m'y prendre.
Ayant d'énormes tableaux et peu de temps pour les traiter, je me suis lancé dans la confection d'une macro.
Pour résumer, mes tableaux sont des arborescences qui ressortent avec des cases manquantes identifiées.
J'ai donc fais une boucle qui identifie les erreurs, celle-ci fonctionne.
Je dois utiliser une rechercheV, pour aller chercher les valeurs manquantes dans un autre onglet du même fichier.
j'ai donc parcouru divers forum et topic, pour au final me retrouver coincer. J'ai essayer d'utiliser la fonction VLookUp ou de passer par la voix "traditionnelle" en décomposant chaque étape de la recherchev en sous fonction.
Dim Partnbr, VM, VT as variant
Private Static Sub testd3()
Sheets("FeuilleTest").Select
Range("A8").Select
Partnbr = ActiveCell.Offset(I, 6).Value
ActiveCell.Offset(I, 25).Value = "Error d3 detected"
Call Valeur_VM
ActiveCell.Offset(I, 12).Value = VM
Call Valeur_VT
ActiveCell.Offset(I, 13).Value = VT
ActiveCell.Offset(I, 14) = ActiveCell.Offset(0, 13).Value + ActiveCell.Offset(0, 14).Value
ActiveCell.Offset(0, 15) = ActiveCell.Offset(0, 15).Value * ActiveCell.Offset(0, 12).Value
End Sub
Private Static Sub Valeur_VM()
Partnbr = ActiveCell.Offset(I, 6).Value
Sheets("Ano aout2013").Select
Range("C8").Select
Do While Not ActiveCell.Offset(I, 5).Value = Partnbr
I = I + 1
Loop
VM = ActiveCell.Offset(I, 5).Value
Sheets("FeuilleTest").Select
Range("A8").Select
End Sub
Private Static Sub Valeur_VT()
Partnbr = ActiveCell.Offset(I, 6).Value
Sheets("Ano aout2013").Select
Range("C8").Select
Do While Not ActiveCell.Offset(I, 6).Value = Partnbr
I = I + 1
Loop
VT = ActiveCell.Offset(I, 6).Value
Sheets("FeuilleTest").Select
Range("A8").Select
End Sub
Etant débutant sous VBA, je pense avoir pas mal d'erreur dans ma syntaxe ou dans la façon que j'ai de m'y prendre.
A voir également:
- Une bonne macro, une !
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
Bonjour,
Sans plus d'explications, pas facile (d'ou vient I ???, entre autre). Pourriez-vous faire un fichier exemple et le mettre a dispo en suivant ce lien
https://www.cjoint.com/
n'oubliez pas de copier/coller le lien cree
Sans plus d'explications, pas facile (d'ou vient I ???, entre autre). Pourriez-vous faire un fichier exemple et le mettre a dispo en suivant ce lien
https://www.cjoint.com/
n'oubliez pas de copier/coller le lien cree
Salut,
Effectivement, c'est un peu maigre pour qu'on puisse t'aider.
Est ce que tu veux essayer de mettre des formules dans ta feuille grâce au VB (utile uniquement si tu souhaites pouvoir modifier certaines cellules du tableau et apprécier les modifications sans avoir à ré-exécuter la macro) ?
Je crois que le I est une simple incrémentation, dans ce cas il vaut mieux tout de même la déclarer par un
Quand je vois des Offset(I, 25), ton doc doit être sacrément large ! Il n'y a pas d'erreur à ce niveau ?
Effectivement, c'est un peu maigre pour qu'on puisse t'aider.
Est ce que tu veux essayer de mettre des formules dans ta feuille grâce au VB (utile uniquement si tu souhaites pouvoir modifier certaines cellules du tableau et apprécier les modifications sans avoir à ré-exécuter la macro) ?
Je crois que le I est une simple incrémentation, dans ce cas il vaut mieux tout de même la déclarer par un
Dim I As Integerpuis
I = 0.
Quand je vois des Offset(I, 25), ton doc doit être sacrément large ! Il n'y a pas d'erreur à ce niveau ?