Copier coller une 2 colonne d'un classeur vers un autre sous conditions

Salut à tous !

J'ai besoin de votre aide pour le problème suivant. J'ai deux classeurs. Le premier classeur sert à alimenter le deuxième pour les numéros de factures cependant il ne doit alimenter que les lignes correspondants au bon numéro de facture sur le deuxième classeur. Les colonnes à alimenter sont les colonnes N et O du classeur A vers le classeur B uniquement si les colonnes E, F, G,H,I,J,K,P correspondent sur les 2 classeurs.

Je vous met les fichiers en pièce jointe.

Merci de votre aide et je m'excuse par avance de mon manque de connaissance.

8navette-mac-1.xlsm (12.78 Ko)
10navette-mac-2.xlsm (13.86 Ko)

Après quelques recherches j'ai fais un concatener des cellules dont je veux que les conditions soient respectées mais je suis bloqué actuellement sur ce code pouvez vous m'aidez ?

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim LR As Integer 'déclare la variable LR (Ligne de Référence)

Set CS = navette - Mac - 2 'définit le classeur source CS
Set OS = CS.Worksheets("Navette") 'définit l'onglet source OS)
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe a la ligne suivante)
Set CD = Workbooks("navette-mac-1.xlsm") 'définit le classeur destination (génère une erreur si le fichier mn'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a été générée
    Err.Clear 'supprime l'erreur
    MsgBox "Vous devez ouvrir le classeur navette-mac-2.xlsm !" 'message
    Exit Sub 'sort de la procédure
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
For S = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    If UCase(TV(S, 19)) = CS.Cells(2, 19) Then 'si la donnée ligne I colonne 15 de TV vaut OK

        Set OD = CD.Worksheets(TV(S, 3)) 'définit l'onglet destination OD (donnée ligne I colonne 3 de TV)
        LR = OD.Cells(Application.Rows.Count, "N").End(xlUp).Row + 1 'définit la ligne de référence LR de la colonne B de l'onglet OD
        OD.Cells(LR, "N").Value = TV(O, 2) 'renvoie dans la cellule ligne LR colonne N de l'onglet OD la donnée en ligne I colonne 4 de TV
    End If
Next S 'prochaine ligne de la boucle
End Sub
8navette-mac-1.xlsm (27.62 Ko)

Finalement je suis arrivé à cela : =SI(S2='[navette-mac-1.xlsm]Accueil'!$S2;'[navette-mac-1.xlsm]Accueil'!$O2;" ") J'aimerais savoir comment l'adapter en langage VBA afin de l'automatiser en cliquant sur un bouton

Bonjour Inconnu95 et

Une petite présentation ICI serait la bienvenue

Je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER] qui vous aidera dans vos demandes et réponses sur ce forum
et notamment :

  • Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).

A vous de choisir

Merci de votre compréhension et de votre participation

Cordialement

Bonjour,

Regardez cette méthode en vous servant de la fenêtre exécution dans ce message : vba-inserer-une-formule-pour-certaines-cellules

Je clôture ce fil, puisque la réponse est donné sur l'autre

@Inconnu95, attention si vous ne respectez pas la charte de ce forum !

Rechercher des sujets similaires à "copier coller colonne classeur conditions"