j'ai un fichier source avec un onglet "Analyse" et " Reporting". J'aimerai être capable d'analyser les entrées dans la colonne "AI" d'Analyse, et quand je rencontre l'entrée "NOK" copier toute la ligne correspondante dans l'onglet "Reporting".
Exemple en AI9 j'ai "NOK "et je désire copier toute la ligne 9 dans l'onglet "Reporting".
je n'y arrive pas avec la fonction rechercheV car la plage de recherche ce situe avant et après la valeur recherchée ..
j'ai un fichier source avec un onglet "Analyse" et " Reporting". J'aimerai être capable d'analyser les entrées dans la colonne "AI" d'Analyse, et quand je rencontre l'entrée "NOK" copier toute la ligne correspondante dans l'onglet "Reporting".
Exemple en AI9 j'ai "NOK "et je désire copier toute la ligne 9 dans l'onglet "Reporting".
je n'y arrive pas avec la fonction rechercheV car la plage de recherche ce situe avant et après la valeur recherchée ..
Sub copieJJ()
Sheets("Reporting").Range("b2:ar" & Rows.Count).Clear
[Tableau1].AutoFilter Field:=34, Criteria1:="=NOK"
[Tableau1].SpecialCells(xlCellTypeVisible).Copy Feuil2.[b2]
End Sub
Sub copieJJ()
Sheets("Reporting").Range("b2:ar" & Rows.Count).Clear
[Tableau1].AutoFilter Field:=34, Criteria1:="=NOK"
[Tableau1].SpecialCells(xlCellTypeVisible).Copy Feuil2.[b2]
End Sub
Merci pour cet aide. je ne connais pas du tout les macros. j'étais parti sur une fonction INDEX et EQUIV puis pas loin. Ceci dit, cela est bien plus fonctionnel mais je n'arrive pas à le faire fonctionner sur le fichier cible qui est très très gros ..
Le fichier cible à 4 onglets, l'un nommé "données" donc feuille1 (la ou je récupère les données à analyser ) ensuite l'onglet "analyse" (la ou se trouve toutes mes formules) , l'onglet " graphiques" et ensuite donc l'onglet "Reporting" qui doit intégrer ta macro...
j'essaye de comprendre la macro même si je n'en ai jamais fait ..
l'onglet reporting par de la celulle A11 à AR11
Sheets("Reporting").Range("b2:ar" & Rows.Count).Clear doit donc nettoyer cette feuille mais si je met :
Sheets("Reporting").Range("a11:ar" & Rows.Count).Clear
il ne veut pas !
Les NOK se trouvent dans la colonne 35 du Tableau1:
[Tableau1].AutoFilter Field:=34, Criteria1:="=NOK"
je met cela ?:
[Tableau1].AutoFilter Field:=35, Criteria1:="=NOK"
et vue que la cible est la feuille4 ( reporting) qui commence en A11 je dois mettre cela ?:
[Tableau1].SpecialCells(xlCellTypeVisible).Copy Feuil4.[a11]
En gros suivant ce que je comprends ça devrai donner cela :
Sheets("Reporting").Range("a11:ar" & Rows.Count).Clear
[Tableau1].AutoFilter Field:=35, Criteria1:="=NOK"
[Tableau1].SpecialCells(xlCellTypeVisible).Copy Feuil4.[a11]
End Sub
RE...
A priori, je ne vois pas d'erreur sur ce code .....
Dans le classeur qui était joint, les données étaient sous forme de tableau==>"Tableau1"
Les données réelles doivent être sous cette forme et avoir ce nom
Feuil4 doit être le "codename" de la feuille "Reporting"
Le mieux serait de joindre un classeur avec les dispositions réelles sans données confidentielles.
RE...
A priori, je ne vois pas d'erreur sur ce code .....
Dans le classeur qui était joint, les données étaient sous forme de tableau==>"Tableau1"
Les données réelles doivent être sous cette forme et avoir ce nom
Feuil4 doit être le "codename" de la feuille "Reporting"
Le mieux serait de joindre un classeur avec les dispositions réelles sans données confidentielles.
RE..
OUI c'est certain que sur 50 000 lignes..........
Tester en mettant en début et fin de macro
'----------
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'--------
'--------
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
'---------------
RE..
OUI c'est certain que sur 50 000 lignes..........
Tester en mettant en début et fin de macro
'----------
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'--------
'--------
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
'---------------
Une dernière question vue que tu gère bien les macros contrairement à moi .. J'ai cette commande qui n'est pas très complexe et qui en fait copie des données d'un fichier vers un autre. Mais je n'arrive pas à lui indiquer de prendre le fichier excel situé au même endroit qui commence par "Lievelink" ou alors contient le mot "Report". Sachant que c'est toujours un fichier de type xlsx. Cela est compliqué ? Car obligé de mettre le nom
source.xlsx. Et donc renommer le fichier source qui s'appelle en gros "Livelink Migration Scan Analysis Report........"
Code :
Sub Import()
'
' Nettoyage Macro
Range("A11:J50001").Select
Selection.ClearContents
'
' import
Workbooks.Open ThisWorkbook.Path & "\source.xlsx"
If MsgBox("Remplacement des données de la feuille désiré ? (attention limité à 50 000 entrées)", vbYesNo + vbExclamation, "Importation") _
= vbYes Then ActiveWorkbook.Worksheets("Migration Risk Analysis").[A2:J50001].Copy Destination:=Feuil1.[A11]
ActiveWorkbook.Close False
End Sub
Une dernière question vue que tu gère bien les macros contrairement à moi .. J'ai cette commande qui n'est pas très complexe et qui en fait copie des données d'un fichier vers un autre. Mais je n'arrive pas à lui indiquer de prendre le fichier excel situé au même endroit qui commence par "Lievelink" ou alors contient le mot "Report". Sachant que c'est toujours un fichier de type xlsx. Cela est compliqué ? Car obligé de mettre le nom
source.xlsx. Et donc renommer le fichier source qui s'appelle en gros "Livelink Migration Scan Analysis Report........"
Code :
Sub Import()
'
' Nettoyage Macro
Range("A11:J50001").Select
Selection.ClearContents
'
' import
Workbooks.Open ThisWorkbook.Path & "\source.xlsx"
If MsgBox("Remplacement des données de la feuille désiré ? (attention limité à 50 000 entrées)", vbYesNo + vbExclamation, "Importation") _
= vbYes Then ActiveWorkbook.Worksheets("Migration Risk Analysis").[A2:J50001].Copy Destination:=Feuil1.[A11]
ActiveWorkbook.Close False
End Sub
Re...
Je ne sais pas si j'ai bien compris.....
Ceci ouvre un classeur se trouvant dans le répertoire en cours ayant dans son nom le mot "Report"
Code:
Sub Import()
Dim LeFichier As String
LeFichier = Dir(ThisWorkbook.Path)
Do While LeFichier <> ""
If UCase(LeFichier) Like "*REPORT*" Then Exit Do
LeFichier = Dir
Loop
If LeFichier = "" Then
MsgBox "Fichier non trouvé"
Else
Workbooks.Open LeFichier
End If
End Sub
Si c'est ce que tu recherches, je pense que tu arriveras à l'adapter à ton besoin
Attention toutefois, si plusieurs fichiers comportent le mot "Report", c'est le premier trouvé qui sera ouvert.
Re...
Je ne sais pas si j'ai bien compris.....
Ceci ouvre un classeur se trouvant dans le répertoire en cours ayant dans son nom le mot "Report"
Code:
Sub Import()
Dim LeFichier As String
LeFichier = Dir(ThisWorkbook.Path)
Do While LeFichier <> ""
If UCase(LeFichier) Like "*REPORT*" Then Exit Do
LeFichier = Dir
Loop
If LeFichier = "" Then
MsgBox "Fichier non trouvé"
Else
Workbooks.Open LeFichier
End If
End Sub
Si c'est ce que tu recherches, je pense que tu arriveras à l'adapter à ton besoin
Attention toutefois, si plusieurs fichiers comportent le mot "Report", c'est le premier trouvé qui sera ouvert.
Re..
Si le fichier cherché se trouve dans le répertoire du classeur par lequel le code est lancé, il n'y a aucune raison que celui-ci ne soit pas trouvé.
Dans l'exemple donné, le nom du fichier cherché doit contenir le mot "Report" et dans le code *REPORT*
Je n'éprouve aucune difficulté à appliquer dans mes tests.
Re..
Si le fichier cherché se trouve dans le répertoire du classeur par lequel le code est lancé, il n'y a aucune raison que celui-ci ne soit pas trouvé.
Dans l'exemple donné, le nom du fichier cherché doit contenir le mot "Report" et dans le code *REPORT*
Je n'éprouve aucune difficulté à appliquer dans mes tests.
J'ai essayé avec l'entrée REPORT , SCAN , Livelink et idem il me dit que le fichier n'existe pas !
pas grave! je vis rester avec l'ancien code et le nom exact du fichier. Merci en tout les cas pour ton aide ^^ je découvre VBA et c'est bien pratique !
J'ai essayé avec l'entrée REPORT , SCAN , Livelink et idem il me dit que le fichier n'existe pas !
pas grave! je vis rester avec l'ancien code et le nom exact du fichier. Merci en tout les cas pour ton aide ^^ je découvre VBA et c'est bien pratique !
RE...
Alors c'est que ce n'est pas le bon répertoire.
Le classeur cherché doit se trouver dans le même répertoire que le classeur qui lance la macro (dans l'exemple donné), sinon il faut modifier le code.
RE...
Alors c'est que ce n'est pas le bon répertoire.
Le classeur cherché doit se trouver dans le même répertoire que le classeur qui lance la macro (dans l'exemple donné), sinon il faut modifier le code.