VBA copier coller sur un autre classeur

Bonjour ,

Je souhaite copier une ligne ( voir fichier , la couleur jaune correspond à la ligne )et coller sur mon deuxième classeur ( FI) selon la date qui correspond ( voir fichier , la couleur verte correspond à la date ou coller la ligne ) en VBA.

Si quelqu'un peut m'aider .

Cordialement ,

8fi.xlsx (9.54 Ko)
14confirm-teste.xlsm (18.92 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

8fi.xlsx (14.91 Ko)

bonjour

comme ceci ?

remarque tes 2 fichiers doivent se nommer

"confirm teste.xlsm" et "fi.xlsx"

et doivent être ouvert

A plus sur le forum

3confirm-teste.xlsm (20.48 Ko)
1fi.xlsx (9.27 Ko)

Bonjour ,

merci beaucoup Gmb et papi G , mais il est impossible d’ouvrir le fichier avec le code Vba j’ai un message d’erreur « car il n’existe aucune vue de donner XSLT» disponible donc je ne vois pas le code.

Papi g , j’au vue votre remarque que mes deux fichiers doivent être ouverts , avec le code Vba n’est il pas possible d’ouvrir automatiquement le classeur ?

Cordialement ,

Re

oui comme ceci

attention adapter le chemin

Set cbut = GetWorkBook("E:\gerard\travail excel\fi.xlsx") ' il faut adapter le chemin

A plus sur le forum

8confirm-teste.xlsm (21.58 Ko)

Merci beaucoup , mais à chaque fois que j'essaye de voir le fichier que vous me joigniez , la macro du fichier se supprime car erreur , pouvez vous me donner le code par texte stp .

Je vous remercie par avance

Cordialement ,

voili voila

Option Explicit
Sub recopie()
'déclare classeurs Source et but
Dim csource As Workbook, cbut As Workbook
'déclare feuilles Source et but
Dim fsource As Worksheet, fbut As Worksheet
'déclare derniere ligne Source et but
Dim derligsource As Long, derligbut As Long
'déclare variables de boucle
Dim i As Integer, j As Long
' initialisation
Set csource = Workbooks("confirm teste.xlsm")
Set cbut = GetWorkBook("E:\gerard\travail excel\fi.xlsx") ' il faut adapter le chemin
Set fsource = csource.Worksheets("confirm")
Set fbut = cbut.Worksheets("Feuil1")
derligbut = fbut.Cells(Application.Rows.Count, "B").End(xlUp).Row
For i = 3 To derligbut
    If fbut.Cells(i, 2) = fsource.Cells(4, 11) Then
        For j = 12 To 17
            fbut.Cells(i, j - 9) = fsource.Cells(4, j)
        Next j
        i = derligbut
    End If
Next i
End Sub
Function GetWorkBook(ByVal sFullName As String, Optional ReadOnly As Boolean) As Workbook
    Dim sFile As String: sFile = Dir(sFullName)
    On Error Resume Next
        Set GetWorkBook = Workbooks(sFile)
        If GetWorkBook Is Nothing Then Set GetWorkBook = Workbooks.Open(sFullName, ReadOnly:=ReadOnly)
    On Error GoTo 0
End Function

A plus sur le forum

Voilà pour moi.

Bye !

Option Explicit

Dim w  As Workbook, f As Worksheet, fa As Worksheet, cell As Range
Dim dte As Date, ln&, j&, chemin$

Sub Reporter()

    Set fa = ActiveSheet
    dte = fa.Range("K4")
    On Error Resume Next
    Set w = Workbooks("fi.xlsx")
    If Err.Number <> 0 Then
        chemin = ThisWorkbook.Path & "\"
        Workbooks.Open Filename:=chemin & "fi.xlsx"
        If ThisWorkbook.Name = ActiveWorkbook.Name Then
            MsgBox "Le fichier ''fi.xlsx'' n'a pas été trouvé dans le " & _
                    "dossier du présent fichier.", 16
            Exit Sub
        Else
            Set w = ActiveWorkbook
        End If
    End If

    Set f = w.Sheets("Feuil1")
    Set cell = f.Range("B:B").Find(dte, lookat:=xlWhole)
    ln = cell.Row
    If Not cell Is Nothing Then
        For j = 3 To 8
            f.Cells(ln, j) = fa.Cells(4, j + 9)
        Next j
    End If
    w.Close True

End Sub

Merci je vous remercie beaucoup de votre aide .

GMB votre formule permet d'ouvrir aussi le fichier automatiquement aussi ?

Cordialement

GMB votre formule permet d'ouvrir aussi le fichier automatiquement aus

Oui et elle envoie un message si elle ne le trouve pas.

Bye !

Re gmb ,

J’ai essayer votre code mai cela ne fonctionne pas Cela me dit instruction incorrect dans une procédure, je vous joint mon code en Vba en photo par lien , car c’est un ordinateur de travaille difficile de joindre le classeur

Je vous remercie par avance .

Cordialement ,

bonsoir

pas simple de faire du débogage à partir de photo

un copier coller dans un fichier texte serait plus exploitable

ceci dit tu semble avoir au milieu du code de ta macro une instruction Option Explicit qui n'a rien a faire ici

Option Explicit se met en tout début de module avant tout code pour forcer la déclaration des variables

A plus sur le forum

Bonjour voici le codes vba "dont mon chemin pour ouvrir le classeur est ( ce pc , System (c:) , utilisateur , moi , bureau )

sub visé

Dim trigramme as String , Dim as Long , derlig as Long

with sheets("confirm client")

dl = . Range("b" & Rows.count).End(xLUP).Row

for i = 3 to dl

If range ("g" & I).value ="reçus" then

sélect case ( range"h" & i).value

case "prendre", "décompte"

.Range("i" & i) = "correct"

.Range=("i" & i ) ="incorrect"

end select

else

.Range=("i" & i ) ="incorrect"

End if

Next I

Range("O4") = Date

trigramme = Inputbox ( "Trigramme ","Votre trigramme")

Range ("N4").value = trigramme

Range("P4") = Time

End with

Dim w As Workbook, f As Worksheet, fa As Worksheet, cell As Range

Dim dte As Date, ln&, j&, chemin$

Set fa = ActiveSheet

dte = fa.Range("M4")

On Error Resume Next

Set w = Workbooks("fi.xlsx")

If Err.Number <> 0 Then

chemin = ThisWorkbook.Path & "C:\Utilisateur\Moi\Bureau\Vérif.xlsx

Workbooks.Open Filename:=chemin & "Vérif.xlsx"

If ThisWorkbook.Name = ActiveWorkbook.Name Then

MsgBox "Le fichier ''fi.xlsx'' n'a pas été trouvé dans le " & _

"dossier du présent fichier.", 16

Exit Sub

Else

Set w = ActiveWorkbook

End If

End If

Set f = w.Sheets("Feuil1")

Set cell = f.Range("B:B").Find(dte, lookat:=xlWhole)

ln = cell.Row

If Not cell Is Nothing Then

For j = 3 To 8

f.Cells(ln, j) = fa.Cells(4, j + 9)

Next j

End If

w.Close True

End sub

Cordialement , merci pour votre aide

bonjour

quand tu dis

J’ai essayer votre code mai cela ne fonctionne pas

en fait tu as mis le code VBA à la sauce VBCAFFOUILLAGE

ce n'est pas étonnant que

Cela me dit instruction incorrect dans une procédure

les erreurs sont nombreuses quelques pistes sans être exhaustif

Une ligne complète en couleurs si ce n’est pas une ligne de rem (commençant par ‘) est une ligne qui contient une erreur. Dim as Long est une erreur pour vba

Dim trigramme as String , Dim as Long , derlig as Long

Syntaxe correcte :Dim trigramme as String, derlig as Long

ou :Dim trigramme as String,toto as long, derlig as Long

Tu déclares des variables que tu n’utilises pas (derlig) mais celle que tu utilises(dl) tu ne les déclare pas ? (bon ça ok c'est pas bloquant)

Il n’y a pas d’accent à select

sélect case range("h" & i).value

Syntaxe correcte : Select Case Range("h" & i).Value

Si le fichier ou est la macro est C:\Utilisateur\Moi\Bureau

Le résultat de

chemin = ThisWorkbook.Path & "C:\Utilisateur\Moi\Bureau\Vérif.xlsx"

est C:\Utilisateur\Moi\BureauC:\Utilisateur\Moi\Bureau\Vérif.xlsx

Là ça ne veut rien dire

.Range=("i" & i ) ="incorrect"

Syntaxe correcte : .Range("i" & i ) ="incorrect"

corrige déjà ça et utilise un peu l'outil de débogage parce que sans tes datas il n'est guere possible de faire mieux

A plus sur le forum

Je te remercie beaucoup de ton aide 👌🏻👌🏻

Bonjour papiG ,

Désolé de revenir sur le sujet , la formule de GMB fonctionne mais n’arrive pas à trouver le fichier .

Pour tant je met bien le chemin où est classer le fichier .

Cordialement je vous remercie d’avance

Re Luc

pas de soucis on va y arriver mais

fait moi parvenir (même copie au format texte) la dernière version de ta macro corrigée

qu'on puisse se baser sur du concret

A plus sur le forum

Bonjour ,

Je te joins les deux tableaux Excel similaire à ceux du travaille avec le même code VBA .

Bizarrement le code VBA sur un ordi apple ne fonctionne pas comme celui de mon travaille .

Les codes VBA que j'ai mis sur le Excel joint fonctionne très bien mis à part pour ouvrir le classeur .

Cordialement je te remercie d'avance de ton aide .

5verif.xlsx (14.91 Ko)

Bonsoir

au vu de ton code il semble que tu ai certains problèmes de police de caractères sur certains de tes postes qui pourraient peut être expliquer tes problèmes

pour palier à ces problèmes ma méthode est simple aucun autre caractère autre que des chiffres ou les 26 lettres classiques de l'alphabet sans aucun accent dans les noms de macro, de feuille, de fichier, de variable.....

car tu as comme dans ta macro ceci qui doit engendrer tes erreurs

Sub visŽ()
Workbooks.Open FileName:=chemin & "VŽrif.xlsx"

enlève les accents tu t'en portera mieux

sinon deux autres erreurs :

ne pas mettre d'espace entre ) et .

Range("N4") .Value= trigramme

Si tu veux mettre la date du jour en O4 met bien un o et pas un zero

Range("04") = Date

A plus sur le forum

Je te remercie beaucoup ça fonctionne 👌🏻👌🏻

Cordialement

Rechercher des sujets similaires à "vba copier coller classeur"