Insérer un copier / coller
Bonjour à tous,
Je sollicite votre aide pour :
insérer un copier/coller entre la colonne K (Gestion) de mon fichier BS vers mon fichier JAT colonne E (Gestion).
Le code ci-dessous fonctionne très bien il met la couleur sur les colonnes BCD du fichier BS s'il trouve l'association des codes OF et Art correspondant dans le fichier JAT.
Il s'avère que des fois le code gestion en colonne K du fichier BS change et je souhaiterai si c'est possible et lors du contrôle de la couleur entre ses 2 fichiers
faire un copier / coller pour chaque ligne correspondante.
J'éspère avoir été clair vous remerciant pour votre a tous et passez de bonnes fêtes.
Sub Colore()
' Déclaration dse variables
' Avant c'etait integer mais il s'arrete à 3200 lignes donc mettre Long
' Dim NomFichier As String, tablo, DerLig As Integer, DerLig2 As Integer, Art, OF, i As Integer, L As Integer
Dim NomFichier As String, tablo, DerLig As Long, DerLig2 As Long, Art, OF, i As Long, L As Long
NomFichier = "JAT.xlsm"
DerLig2 = Workbooks(NomFichier).Sheets("OF JAT").Range("B65000").End(xlUp).Row 'On W en feuil5 et colonne du N° OF c'est à la B
tablo = Workbooks(NomFichier).Sheets("OF JAT").Range("B2:F" & DerLig2) ' on crée un tableau de B2 à F
DerLig = Range("A65500").End(xlUp).Row
For L = 2 To DerLig
Art = Cells(L, 16) ' colonne 16 du bon de sortie
OF = Cells(L, 2) 'colonne 2 du bon de sortie
For i = 1 To UBound(tablo)
If tablo(i, 1) = OF And tablo(i, 5) = Art Then ' dans le tablo 1ere colonne c'est la colonne B et la 2eme colonne c'est la colonne F
Range(Cells(L, 2), Cells(L, 4)).Interior.Color = RGB(0, 252, 0) ' ici on color la colonne B soit la 2 et la colonne
End If
Next i
Next L
End SubSalut Man,
Le code que tu présentes dans ton message va chercher des informations dans le fichier ‘’JAT’’ et agit sur le fichier ‘’BS’’ en y colorant certaines cellules à certaines conditions.
Mais tu demandes – de manière très peu claires, j’espère t’avoir compris – de transférer des données du fichier ‘’BS’’ vers le fichier ‘’JAT’’, ce qui est le contraire.
Eventuellement que l’on pourrait ajouter une deuxième partie à ta macro afin d’effectuer ce travail, encore faut-il bien comprendre à quelles conditions. Tu parles d’un changement de code de gestion dans la colonne K du fichier ‘’BS’’, mais il n’y en a aucun, de changement, dans le fichier présenté ; il n’y a que le code ‘’P15’’.
Je te propose alors de réduire tes fichiers à une vingtaine de lignes représentatives chacun et de montrer un exemple pour lequel cette opération complémentaire serait nécessaire. En plus de deux fichiers bien clairs, indique-nous tout autant clairement sur ton fil ce qu’il y a à réaliser comme opérations lorsqu’un tel cas est rencontré.
A te relire.
Bonjour Yvouille et Tous mes voeux pour 2024.
Pour résumer le fichier BS est une extraction de la base de données de tout les jours (Lundi, mardi, mercredi...)
Mon fichier JAT est le fichier de travail suivant la Fab.
Ex: mon fichier JAT date de lundi et le mardi lors de l'extraction du fichier BS je m'aperçois dans celui-ci que le deuxième ligne en colonne K en passée en Gestion P20 pour l'association de l'OF initial 2033757 et l'article 5045273122HA.
P13 = ne pas fabriquer
P20 = Fabriquer
J'ai réduit à 3 lignes pour chaque fichier.
Merci pour ton aide
Salut, oui tu as raison oups...
Je souhaiterai faire un copier / coller des codes gestion (une mise à jour) du fichier BS (du mardi) vers le Fichier JAT pour MAJ (ayant les codes Gestion du lundi).
pendant la boucle (Color) est ce possible ?
Merci
Salut Man,
Je me suis passablement pris la tête depuis quelques jours afin d'essayer de comprendre ton problème, mais soit je ne suis pas assez intelligent, soit tu expliques mal. Là je jette l'éponge et malheureusement je t'abandonne.
Indique éventuellement ce fil comme ''Résolu'' - peu de membres s'intéressant encore à un fil bien entamé - et recommence une nouvelle demande. Je ne peux que te conseiller de donner tes explications en utilisant les références aux objets d'Excel (lignes, colonnes, plages de cellules, etc.).
Dans l'espoir de ta compréhension ; ce n'est pas faute d'avoir essayé !
Amicalement.
Bonsoir a tous,
Personne n'a une idée ?
comment faire un copier / coller de la colonne K de mon fichier BS vers la colonne L de mon fichier JAT ? en fonction de mon Numéro OF initial en colonne B
j'espère avoir simplifié et clair.
Bonne soirée
Salut,
Je pense que des images ne servent à rien. Il faut fournir des fichiers, tels que je te l'ai déjà indiqué
Evite de placer des informations directement dans les fichiers, on ne sait jamais si c'est des informations pour le Forum ou pour l'utilisateur du fichier. Donne tes consignes uniquement sur le fil du Forum.
Je t'avais également dit que peu de membres s'intéressaient à un sujet trop entamé. Recommence éventuellement un nouveau fil en faisant référence aux objets excel dans tes explications (je te l'ai déjà dit, mais tu sembles ne pas en tenir trop compte).
Amicalement.
Bonjour Man, salut Yvouille,
à première vue (je n'ai pas lu toutes les éactions), 6 lignes (entre ces lignes avec "*********") supplémentaires suffisent.
Sub Colore()
' Déclaration dse variables
' Avant c'etait integer mais il s'arrete à 3200 lignes donc mettre Long
' Dim NomFichier As String, tablo, DerLig As Integer, DerLig2 As Integer, Art, OF, i As Integer, L As Integer
Dim NomFichier As String, tablo, DerLig As Long, DerLig2 As Long, Art, OF, i As Long, L As Long
NomFichier = "JAT.xlsm"
DerLig2 = Workbooks(NomFichier).Sheets("OF JAT").Range("B65000").End(xlUp).Row 'On W en feuil5 et colonne du N° OF c'est à la B
tablo = Workbooks(NomFichier).Sheets("OF JAT").Range("B2:F" & DerLig2) ' on crée un tableau de B2 à F
DerLig = Range("A65500").End(xlUp).Row
For L = 2 To DerLig
Art = Cells(L, 16) ' colonne 16 du bon de sortie
OF = Cells(L, 2) 'colonne 2 du bon de sortie
For i = 1 To UBound(tablo)
If tablo(i, 1) = OF And tablo(i, 5) = Art Then ' dans le tablo 1ere colonne c'est la colonne B et la 2eme colonne c'est la colonne F
Range(Cells(L, 2), Cells(L, 4)).Interior.Color = RGB(0, 252, 0) ' ici on color la colonne B soit la 2 et la colonne
'****************** Nouveau *******************************
With Cells(L, "K") 'Gestion dans BS
If tablo(i, 4) <> .Value Then 'Gestion dans JAT <> Gestion dans BS
.Value = tablo(i, 4) 'adapter Gestion dans BS
.Interior.Color = RGB(255, 0, 0) 'couleur rouge
End If
End With
'*********************************************************
End If
Next i
Next L
End Sub
Bonjour BsAlv,
Avec un peu de retard DSL je te remercie cela fonctionne, merci bcp.
par contre je n'arrive pas à inverser le sens de la valeur c'est dire récupérer la valeur qui a changer dans le fichier BS et l'écrire dans le fichier JAT
.Value = tablo(i, 4)
re,
peut-être comme ceci ? On a ce range "cJat" pour le moment.
La durée de cette macro est assez long ? Combien ? Il y a combien de lignes dans les 2 fichiers ?
Sub Colore()
' Déclaration dse variables
' Avant c'etait integer mais il s'arrete à 3200 lignes donc mettre Long
' Dim NomFichier As String, tablo, DerLig As Integer, DerLig2 As Integer, Art, OF, i As Integer, L As Integer
Dim NomFichier As String, tablo, DerLig As Long, DerLig2 As Long, Art, OF, i As Long, L As Long, cJAT As Range
NomFichier = "JAT.xlsm"
DerLig2 = Workbooks(NomFichier).Sheets("OF JAT").Range("B65000").End(xlUp).Row 'On W en feuil5 et colonne du N° OF c'est à la B
Set cJAT = Workbooks(NomFichier).Sheets("OF JAT").Range("B2:F" & DerLig2) ' cette plage <<<<<<<<<<<<<<<<<<<<<<<<<<<
tablo = cJAT.Value ' on crée un tableau de B2 à F
DerLig = Range("A65500").End(xlUp).Row
For L = 2 To DerLig
Art = Cells(L, 16) ' colonne 16 du bon de sortie
OF = Cells(L, 2) 'colonne 2 du bon de sortie
For i = 1 To UBound(tablo)
If tablo(i, 1) = OF And tablo(i, 5) = Art Then ' dans le tablo 1ere colonne c'est la colonne B et la 2eme colonne c'est la colonne F
Range(Cells(L, 2), Cells(L, 4)).Interior.Color = RGB(0, 252, 0) ' ici on color la colonne B soit la 2 et la colonne
'****************** Nouveau *******************************
With Cells(L, "K") 'Gestion dans BS
If tablo(i, 4) <> .Value Then 'Gestion dans JAT <> Gestion dans BS
'ou
'.Value = tablo(i, 4) 'adapter Gestion dans BS
'.Interior.Color = RGB(255, 0, 0) 'couleur rouge
'ou
With cJAT.Cells(i, 4)
.Value = Cells(L, "K").Value 'de BS vers JAT
.Interior.Color = RGB(255, 0, 0)
End With
End If
End With
'*********************************************************
End If
Next i
Next L
End SubBonsoir BsAlv,
merci beaucoup cela fonctionne.
pour répondre mon fichier BS fait entre 200 à 300 lignes
et mon fichier JAT 4500 lignes
Cdt
re, super, la durée pour exécuter la macro, ça va ou ... ?
Re, oui c'est très correct merci
dans mon fichier de JAT de 4500 lignes je vais essayer de passer à 2000 max.
