Besoin d aide

Bonjour,

J'ai besoin d'un petit coup de main pour trouver la bonne formule.

J'importe un fichier qui contient une trentaine de colonnes avec 700 lignes que l'on appellera export

Dans un nouveau fichier excel que l'on appellera import, j'ai besoin de récupérer seulement quelques lignes du fichier export et de l insèrer dans un ficher import.

Il y a une valeur qui comporte un numéro spécifique MA1305009 en colonne F du fichier export

Je veux une formule qui me dit que s'il trouve ce numéro dans la colonne F du fichier export alors je veux qu'il m’insère tout la ligne dans mon fichier import

Une fois la formule mise en place je veux le faire quotidiennement sans faire de doublons en rajoutant les nouvelles lignes qui apparaîtront les jours suivant dans mon fichier export (pour éviter les doublons on pourra utiliser la colonne A qui représente une série de chiffre toujours différent)

Merci beaucoup par avance

Bonsoir Passiv, bonsoir le forum,

Tu parles de formule. Est-ce qu'une solution par macro VBA peut aussi t'intéresser ? Sinon, seuls nous manquent les noms des onglets dans ta description !...

Je maîtrise pas vba. Je suis novice. Mais si c'est une solution why not

De quoi aurais tu besoin

Bonsoir Passiv, bonsoir le forum,

Comme dit dans mon premier post, il faut le nom de l'onglet où se trouvent les données de chaque classeur (Import et Export)...

le nom de l onglet ou les informations sont s'appelle "export"

le nom de l onglet ou je veux mes lignes spécifiques s'appelle "import"

j'ai bien compris ta demande ?

Merciiii

Bonjour Passiv, bonjour le forum,

Le code ci-dessous est à placer dans un module standard du classeur export.xlsm. Le fait d'y mettre la macro t'oblige à l'enregistrer sous, avec l'extension .xlsm. Si tu es sous Excel 2003 l'extension ne change pas, .xls

Il ne fonctionne que si :

• Le classeur export.xlsm contient un onglet nommé export

• Le classeur import.xlsx contient un onglet nommé import

• Le classeur import.xlsx se trouve dans le même dossier que le classeur export.xlsm

• Les données du classeur import.xlsx commencent à partir de la seconde ligne. La première ligne contenant les "étiquettes" de ces données

Sub Macro1()
Dim CE As Workbook 'déclare la variable CE (Classeur Export)
Dim CH As String 'déclare la variable CH (Chemin d'accès)
Dim CI As Workbook 'déclare la variable CI (Classeur Import)
Dim OE As Object 'déclare la variable OE (Onglet Export)
Dim OI As Object 'déclare la variable OI (Onglet Import)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim PLV As Range 'déclare la variable PLV (PLage Visible)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CE = ThisWorkbook 'définit le classeur CE
CH = CE.Path & "/" 'définit le chemin d'acces CH
Set OE = CE.Sheets("export") 'définit l'onglet OE
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CI = Workbooks("import.xlsx") 'définit le classeur CI (génère une erreur si ce classeur n'est pas ouvert)(extension à adapter xls ou xlsx ?)
If Err <> 0 Then 'condition : si une erreur a été générée
    Err.Clear 'efface l'erreur
    Workbooks.Open (CH & "import.xlsx") 'ouvre le classeur "import.xlsx" (extension à adapter xls ou xlsx ?)
    Set CI = ActiveWorkbook 'définit le classeur CI
End If 'fin de la condition
On erroro GoTo 0 'annule la gestion des erreurs
Set OI = CI.Sheets("import") 'définit l'onglet OI
DL = OE.Cells(Application.Rows.Count, 6).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 6 (=F) de l'onglet OE
Set PL = OE.Range("F2:F" & DL) 'définit la plage PL
OE.Range("A1").AutoFilter Field:=6, Criteria1:="MA1305009" 'filtre en A1 la colonne 6 (=F) de l'onglet OE avec "MA1305009" comme critère
Set PLV = PL.SpecialCells(xlCellTypeVisible) 'définit la plage PLV (cellules visibles (non filtrées) de la plage PL)
'définit la cellule de destination DEST (A1 si A1 est vide, sinon la première cellule vide de la colonne 1 (=A) de l'onglet OI)
Set DEST = IIf(OI.Range("A1").Value = "", OI.Range("A1"), OI.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
PLV.EntireRow.Copy DEST 'copie les ligne entières de la plage PLV et les colle dans DEST
OE.Range("A1").AutoFilter 'supprime le filtre automatique
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Rechercher des sujets similaires à "besoin aide"