EXCEL Vba:SYNCRO DE DONNEES ENTRE 2 FEUILLES
Résolu
7808622H
Messages postés
331
Statut
Membre
-
7808622H Messages postés 331 Statut Membre -
7808622H Messages postés 331 Statut Membre -
Bonjour à tous les pro du VBA,
J'ai besoin d'un petit ( euh non d'un énorme) coup de main en VBA que je maitrise que trop peu
Je m'expliquer , mon classeur excel est composé de 2 feuilles
-la feuille A : récupere les données par un simple collé depuis une requette générée par un ERP, une fois recoller sur la feuille A, la mise en forme "ideale" se fait par le biais d'un bouton qui supprime les colonnes superflues
- La Feuille B : contient le fichier actualisé, c'est a dire, les anciennes lignes qui ont toujours cour du fait d'attente d'information par exemple et éventuellement d'autres pas encore traitées mais qui sont persistantes
Le but recherché, est que lors de l'activation du bouton actualiser de la feuille B, Excel compare les feuilles A et B
Il devra vérifier par rapport à la colonne "PIECE" (cf docjoint) des deux feuilles,tout les numeros de pièces et coller à la suite des lignes déja présentes sur la feuille B, les lignes de pièces inexistantes.
c'est cette partie que je ne trouve pas, ( me doute bien que c'est pas une mince affaire c'est bien poru ca que je tente de me tourner vers vous)
Les mises en formes sont déjà faite en code sur les deux boutons, il faudrait juste que l'action de la "synchronisation" se fasse avant les mises en forme sur le bouton de la feuille B
Bon je pense qu' avec le classeur pour visualiser ca sera un peu plus clair.
J'espère vraiment que quelqu'un pourra me débrouiller ce sac de noeux car j'ai eu bo chercher mon bonheur sur le net, bah je sèche
Liens vers le fichier DEMO : http://cgpccf.free.fr/ER14.xls
Le fichier présenté est tel qu'il est lorsque la premiere feuilel vient d etre collée ( feuille import....) il faut cliquer sur MISE EN FORME avant de poursuivre.
Un énorme merci par avance
CED
J'ai besoin d'un petit ( euh non d'un énorme) coup de main en VBA que je maitrise que trop peu
Je m'expliquer , mon classeur excel est composé de 2 feuilles
-la feuille A : récupere les données par un simple collé depuis une requette générée par un ERP, une fois recoller sur la feuille A, la mise en forme "ideale" se fait par le biais d'un bouton qui supprime les colonnes superflues
- La Feuille B : contient le fichier actualisé, c'est a dire, les anciennes lignes qui ont toujours cour du fait d'attente d'information par exemple et éventuellement d'autres pas encore traitées mais qui sont persistantes
Le but recherché, est que lors de l'activation du bouton actualiser de la feuille B, Excel compare les feuilles A et B
Il devra vérifier par rapport à la colonne "PIECE" (cf docjoint) des deux feuilles,tout les numeros de pièces et coller à la suite des lignes déja présentes sur la feuille B, les lignes de pièces inexistantes.
c'est cette partie que je ne trouve pas, ( me doute bien que c'est pas une mince affaire c'est bien poru ca que je tente de me tourner vers vous)
Les mises en formes sont déjà faite en code sur les deux boutons, il faudrait juste que l'action de la "synchronisation" se fasse avant les mises en forme sur le bouton de la feuille B
Bon je pense qu' avec le classeur pour visualiser ca sera un peu plus clair.
J'espère vraiment que quelqu'un pourra me débrouiller ce sac de noeux car j'ai eu bo chercher mon bonheur sur le net, bah je sèche
Liens vers le fichier DEMO : http://cgpccf.free.fr/ER14.xls
Le fichier présenté est tel qu'il est lorsque la premiere feuilel vient d etre collée ( feuille import....) il faut cliquer sur MISE EN FORME avant de poursuivre.
Un énorme merci par avance
CED
A voir également:
- EXCEL Vba:SYNCRO DE DONNEES ENTRE 2 FEUILLES
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonsoir,
A mettre dans la feuille import...
Il faut faire un choix entre entier ou string pour le n° de pièce car ça change dans ta 2nde feuille.
J'avais démarré avec un long 'nPiece = CLng(Cells(i, 1)) que j'ai mis ensuite en commentaire pour utiliser un string Npiec = Cells(i, 1)
Si tu reviens sur un long ne pas oublier de changer la variable en Npiece au lieu de Npiec dans le .find
Regarde si c'est ok
eric
A mettre dans la feuille import...
Sub importer()
Dim i As Long, nPiece As Long, r, Npiec As String, dest As String
For i = 3 To [A65536].End(xlUp).Row
'nPiece = CLng(Cells(i, 1))
Npiec = Cells(i, 1)
Set r = Worksheets("ER14_FINAL").Range("A:A").Find(Npiec, LookIn:=xlValues, LookAt:=xlWhole)
If Not (IsNumeric(r)) Then
dest = "A" & Worksheets("ER14_FINAL").[A65536].End(xlUp).Offset(1, 0).Row
Range("A" & i).Resize(1, 9).Copy Destination:=Worksheets("ER14_FINAL").Range(dest)
End If
Next i
Set r = Nothing
End Sub
Il faut faire un choix entre entier ou string pour le n° de pièce car ça change dans ta 2nde feuille.
J'avais démarré avec un long 'nPiece = CLng(Cells(i, 1)) que j'ai mis ensuite en commentaire pour utiliser un string Npiec = Cells(i, 1)
Si tu reviens sur un long ne pas oublier de changer la variable en Npiece au lieu de Npiec dans le .find
Regarde si c'est ok
eric