Bonjour à tous,
Grace à l'aide d'un membre du forum j'ai réalisé un fichier Excel me permettant de copier les lignes de commandes qui répondent à 3 conditions dans un onglet correspondant à leur nom de contact d'achat (qui est une des colonnes d'une ligne de commande).
En sachant que le nom qui apparait dans la ligne de commande doit être identique à celui de l'onglet pour qu'il puisse se copier.
Il y a donc un onglet par nom de contact d'achat connu. Il y a aussi un onglet "Autres" car quand le nom n'est pas précisé c'est cette valeur qui s'affiche.
Mon problème est le suivant: au fil du temps et des embauches les contacts d'achat seront emmenés à bouger, il y en aura des nouveaux. Et dans ce cas ma macro ne fonctionne pas...
J'ai beau tourner mon code dans tous les sens, je ne trouve pas comment copier ces lignes de commandes qui ont des contacts d'achat nouveaux dans l'onglet "Autres"...
Je m'en remet donc à votre expertise Je vous joins le code de ma macro:
C'est la ligne en rouge qui apparaît en erreur lorsque je lance la macro sur un listing de commandes comprenant des contacts d'achat inconnus.
Je vous joins également mon fichier:
- les intitulés de colonnes en rouge sont ceux dont dépendent les 3 conditions
- les lignes de commandes en jaune sont celles qui répondent à ces conditions et donc qui se copient dans les onglets au lancement de la macro
- les noms de contact achat en vert sont ceux qui sont inconnus.
Je n'attend pas forcément une correction toute faite, mais même des pistes pourront m'aider, sachant que je suis novice et en plein apprentissage de ce langage
Merci d'avance à tous, c'est grace à vos participations que j'ai déjà pu en arriver là !
Grace à l'aide d'un membre du forum j'ai réalisé un fichier Excel me permettant de copier les lignes de commandes qui répondent à 3 conditions dans un onglet correspondant à leur nom de contact d'achat (qui est une des colonnes d'une ligne de commande).
En sachant que le nom qui apparait dans la ligne de commande doit être identique à celui de l'onglet pour qu'il puisse se copier.
Il y a donc un onglet par nom de contact d'achat connu. Il y a aussi un onglet "Autres" car quand le nom n'est pas précisé c'est cette valeur qui s'affiche.
Mon problème est le suivant: au fil du temps et des embauches les contacts d'achat seront emmenés à bouger, il y en aura des nouveaux. Et dans ce cas ma macro ne fonctionne pas...
J'ai beau tourner mon code dans tous les sens, je ne trouve pas comment copier ces lignes de commandes qui ont des contacts d'achat nouveaux dans l'onglet "Autres"...
Je m'en remet donc à votre expertise Je vous joins le code de ma macro:
Code:
Option Explicit
Sub Répartir_si_conditions_remplies()
Dim o As Worksheet
Dim i As Long
Dim copier_vers As String
Application.ScreenUpdating = False
For Each o In Worksheets
If o.Name <> "Accueil" And o.Name <> "Listing Cda" Then
With o
.Activate
.Range(Range("a3"), Range("a3").End(xlToRight).End(xlDown)).Clear
End With
End If
Next
Sheets("Listing Cda").Activate
For i = 3 To Range("a65536").End(xlUp).Row
If Range("a" & i).Offset(, 34).Value = "Oui" Then
If Range("a" & i).Offset(, 36).Value = "Non reçu" Or Range("a" & i).Offset(, 36).Value = "Partiel" Then
If Date - Range("a" & i).Offset(, 22).Value > 4 Then
Range("a" & i).Offset(, 0).Resize(, 38).Select
copier_vers = Cells(i, 11).Value
[COLOR="#FF0000"]Selection.Copy Destination:=Sheets(copier_vers).Range("a65536").End(xlUp).Offset(1, 0)[/COLOR]
Sheets("Listing Cda").Activate
End If
End If
End If
Next
Range("a1").Select
Application.ScreenUpdating = True
End Sub
C'est la ligne en rouge qui apparaît en erreur lorsque je lance la macro sur un listing de commandes comprenant des contacts d'achat inconnus.
Je vous joins également mon fichier:
- les intitulés de colonnes en rouge sont ceux dont dépendent les 3 conditions
- les lignes de commandes en jaune sont celles qui répondent à ces conditions et donc qui se copient dans les onglets au lancement de la macro
- les noms de contact achat en vert sont ceux qui sont inconnus.
Je n'attend pas forcément une correction toute faite, mais même des pistes pourront m'aider, sachant que je suis novice et en plein apprentissage de ce langage
Merci d'avance à tous, c'est grace à vos participations que j'ai déjà pu en arriver là !