PB de macro de mise à jour d'un tableau par autre tableau

templar

XLDnaute Nouveau
Bonjour,
j'ai trouvé des sujets s'approchant dans les forums mais rien ne m'a completement aidé alors je vous sollicite.

Mon probleme est le suivant :
j'ai 2 feuilles :
- une avec une base de donnée
- l'autre avec une fonction de recherche qui applique des filtres sur la base de donnée et affiche le tableau resultant (plus des plans, d'ou l'utilisation d'une feuille différente de la base de donnée :) ).

Je voudrais mettre à jour ma base de donnée à partir du tableau modifié de ma page de recherche.
De même, si une ligne a été ajoutée au tableau, je souhaite l'ajouter dans ma base de donnée.

je bug en fait sur le balayage du premier tableau par rapport au deuxieme. Là sont les limites des mes connaissances en VBA. J'essayerais bien avec des boucle if, for et les fonctions decaler et recherchev mais je prefere vous demander s'il existe une solution plus simple avant de me lancer là dedans.

merci.
 
Dernière édition:

templar

XLDnaute Nouveau
Re : PB de macro de mise à jour d'un tableau par autre tableau

Alors voilà ce que j'ai essayé
il y a visiblement un problème car soit il marque "dépassement de capacité" pour la variable i au niveau de i = i + 1, soit si je met i = i +1 à une autre place , le programme plante.

une idée?

Dim i As Integer
Dim j As Integer

i = 3
j = 42

While Sheets("Recherche").Range("B" & j) <> ""
If Sheets("Recherche").Range("B" & j).Value = Sheets("Base de données").Range("A" & i).Value Then
If Sheets("Recherche").Range("C" & j).Value = Sheets("Base de données").Range("B" & i).Value Then
If Sheets("Recherche").Range("I" & j).Value = Sheets("Base de données").Range("H" & i).Value Then
If Sheets("Recherche").Range("J" & j).Value = Sheets("Base de données").Range("I" & i).Value Then
Sheets("Base de données").Range("C" & i).Value = Sheets("Recherche").Range("D" & j).Value
Sheets("Base de données").Range("D" & i).Value = Sheets("Recherche").Range("E" & j).Value
j = j + 1
ElseIf Sheets("Base de données").Range("A" & i).Value = "" Then
Sheets("Base de données").Range("A" & i).Value = Sheets("Recherche").Range("B" & j).Value
Sheets("Base de données").Range("B" & i).Value = Sheets("Recherche").Range("C" & j).Value
Sheets("Base de données").Range("C" & i).Value = Sheets("Recherche").Range("D" & j).Value
Sheets("Base de données").Range("D" & i).Value = Sheets("Recherche").Range("E" & j).Value
Sheets("Base de données").Range("E" & i).Value = Sheets("Recherche").Range("F" & j).Value
Sheets("Base de données").Range("F" & i).Value = Sheets("Recherche").Range("G" & j).Value
Sheets("Base de données").Range("G" & i).Value = Sheets("Recherche").Range("H" & j).Value
Sheets("Base de données").Range("H" & i).Value = Sheets("Recherche").Range("I" & j).Value
Sheets("Base de données").Range("I" & i).Value = Sheets("Recherche").Range("J" & j).Value
j = j + 1
End If
End If
End If
End If
i = i + 1
Wend
End Sub
 

templar

XLDnaute Nouveau
Re : PB de macro de mise à jour d'un tableau par autre tableau

Bon ben voilà, j'ai réussi donc je met la soluce pour les prochains.

Dim i As Integer
Dim j As Integer

i = 3
j = 42

While Sheets("Recherche").Range("B" & j) <> ""
If Sheets("Recherche").Range("B" & j).Value = Sheets("Base de données").Range("A" & i).Value Then
If Sheets("Recherche").Range("C" & j).Value = Sheets("Base de données").Range("B" & i).Value Then
If Sheets("Recherche").Range("I" & j).Value = Sheets("Base de données").Range("H" & i).Value Then
If Sheets("Recherche").Range("J" & j).Value = Sheets("Base de données").Range("I" & i).Value Then
Sheets("Base de données").Range("C" & i).Value = Sheets("Recherche").Range("D" & j).Value
Sheets("Base de données").Range("D" & i).Value = Sheets("Recherche").Range("E" & j).Value
j = j + 1
End If
End If
End If
ElseIf Sheets("Base de données").Range("A" & i).Value = "" Then
Sheets("Base de données").Range("A" & i).Value = Sheets("Recherche").Range("B" & j).Value
Sheets("Base de données").Range("B" & i).Value = Sheets("Recherche").Range("C" & j).Value
Sheets("Base de données").Range("C" & i).Value = Sheets("Recherche").Range("D" & j).Value
Sheets("Base de données").Range("D" & i).Value = Sheets("Recherche").Range("E" & j).Value
Sheets("Base de données").Range("E" & i).Value = Sheets("Recherche").Range("F" & j).Value
Sheets("Base de données").Range("F" & i).Value = Sheets("Recherche").Range("G" & j).Value
Sheets("Base de données").Range("G" & i).Value = Sheets("Recherche").Range("H" & j).Value
Sheets("Base de données").Range("H" & i).Value = Sheets("Recherche").Range("I" & j).Value
Sheets("Base de données").Range("I" & i).Value = Sheets("Recherche").Range("J" & j).Value
j = j + 1
End If
i = i + 1
Wend
End Sub
 

templar

XLDnaute Nouveau
Re : PB de macro de mise à jour d'un tableau par autre tableau

Je relance ce sujet en continuant de chercher sur le forum mais mon code est vraiment très gourmand en ressource et ralenti mon ordinateur pendant plusieurs minutes alors que le tableau ne fait encore que quelque dizaines de lignes.

Est ce qu'une personne aurait une solution plus simple ?
 

templar

XLDnaute Nouveau
Re : PB de macro de mise à jour d'un tableau par autre tableau ; au secours

bonjour,

alors simplement je dirais : au secours !!! s'il vous plait

Je suis bloqué sur ce problème.

je me retourne vers un recherchev en vba.

je joins le fichier pour plus d'explicité.

si quelqu'un a une suggestion ...
 

Pièces jointes

  • gestion signa copie.zip
    44.9 KB · Affichages: 52

Discussions similaires

Réponses
0
Affichages
235

Statistiques des forums

Discussions
312 305
Messages
2 087 090
Membres
103 464
dernier inscrit
Inconnu2