Une bonne macro, une !

Fermé
Vava869 - Modifié par jipicy le 8/11/2013 à 11:01
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 13 nov. 2013 à 17:00
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.

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:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
11 nov. 2013 à 09:12
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
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
13 nov. 2013 à 17:00
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
Dim I As Integer
puis
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 ?
0