• Initiateur de la discussion Initiateur de la discussion olivius
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

olivius

Guest
Bonjour à tous,
je souhaiterais utiliser cette macro mais elle bug dès le départ..
Pourriez vous m'aider svp ?

Sub CreateExtractionReport()

Dim Ligne As Integer
Ligne = 1
Dim ValeurCellulePrecedente As String
ValeurCellulePrecedente = ""
Dim I As Integer
Dim J As Integer
I = 1
J = 1

'Application.ScreenUpdating = False ' Neutraliser l'affichage à l'écran


' **************************************************
' Ouverture du fichier Source

fichierSource = Application.GetOpenFilename("Fichiers Excels(*.xl*),*xl*")
If fichierSource = False Then
Exit Sub
End If

' **************************************************
Workbooks.Open fichierSource
Nom = ActiveWorkbook.Name
Workbooks(Nom).Activate
ActiveSheet.Select
FeuilleSource = ActiveSheet.Name
Sheets(FeuilleSource).Select


' **************************************************
' Extraction

For Each cell In Worksheets(FeuilleSource).Range("B15", Range("B15").End(xlDown))

If ValeurCellulePrecedente <> cell.Text Then

Worksheets(FeuilleSource).Rows(cell.Row).Copy Destination:=Worksheets("Extraction").Range("A" & Ligne)
Workbooks("Results_SP.xlsm").Activate
Worksheets("Extraction").Activate
ActiveSheet.Paste




Worksheets("Extraction").Range("P" & Ligne).Value = 1
Worksheets("Extraction").Range("P" & Ligne).NumberFormat = "0"
ValeurCellulePrecedente = cell.Text
Ligne = Ligne + 1
Sheets(FeuilleSource).Select
Else
Worksheets("Extraction").Range("P" & Ligne - 1).Value = Worksheets("Extraction").Range("P" & Ligne - 1).Value + 1

End If

Next cell
End Sub
 
Re : problème macro

Bonjour olivius,

tu as essayé d'obtenir une réponse à ta question dans de nombreux messages
Si tu n'obtiens pas de réponse, c'est souvent que tu ne fournis pas assez d'information pour qu'on puisse t'aider
Un code VBA seul, sans le contexte des données sur lesquelles il s'applique est souvent lourd à décrypter, voire impossible
Peux-tu fournir un fichier exemple des données (non confidentielles) sur lesquelles ce code s'applique ?
Evite à l'avenir les messages multiples sur un même sujet, ça n'améliore pas les réponses apportées à ton problème, plutôt le contraire
 
Re : problème macro

Bonjour,

Voici quelques modifs , cela devrait aller mieux

Sub CreateExtractionReport()
Dim ValeurCellulePrecedente As String
Dim Ligne As Integer
Dim I As Integer
Dim J As Integer
Dim fichierSource As String, Nom As String, FeuilleSource As String
Dim cell As Range
Ligne = 1
ValeurCellulePrecedente = ""
I = 1
J = 1

'Application.ScreenUpdating = False ' Neutraliser l'affichage à l'écran


' **************************************************
' Ouverture du fichier Source

fichierSource = Application.GetOpenFilename("Fichiers Excels(*.xl*),*xl*")
If fichierSource = "Faux" Then
Exit Sub
End If

' **************************************************
Workbooks.Open fichierSource
Nom = ActiveWorkbook.Name
Workbooks(Nom).Activate
ActiveSheet.Select
FeuilleSource = ActiveSheet.Name
Sheets(FeuilleSource).Select


' **************************************************
' Extraction

For Each cell In Worksheets(FeuilleSource).Range("B15", Range("B15").End(xlDown))

If ValeurCellulePrecedente <> cell.Text Then

Worksheets(FeuilleSource).Rows(cell.Row).Copy Destination:=Worksheets("Extraction").Range("A" & Ligne)
Workbooks("Results_SP.xlsm").Activate
Worksheets("Extraction").Activate
ActiveSheet.Paste




Worksheets("Extraction").Range("P" & Ligne).Value = 1
Worksheets("Extraction").Range("P" & Ligne).NumberFormat = "0"
ValeurCellulePrecedente = cell.Text
Ligne = Ligne + 1
Sheets(FeuilleSource).Select
Else
Worksheets("Extraction").Range("P" & Ligne - 1).Value = Worksheets("Extraction").Range("P" & Ligne - 1).Value + 1

End If

Next cell
End Sub
 
Re : problème macro

ok,
Merci pour vos réponses !
je vous joins un fichier ! il ya ma macro qui fonctionne. Maintenant, j'aimerais qe cette macro puisse copier les données mais dans un autre classeur.
comment faire svp ,
 

Pièces jointes

Re : problème macro

Olivius ,
Là , c'est carrément des interventions à la boule de cristal.

Il faudrait effectivement mieux définir ton besoin.

La macro fonctionne en effet, elle à été écrit pour un cas bien spécifique,

Il y a surement des solutions bien plus simple.

Que doit -on copier dans le classeur.

Il faut vraiment être plus précis si tu veux une aide efficace?
 
Re : problème macro

Bonjour à tous,
désolé, je n'avais pas vu ta réponse d'hier soir.
je souhaiterais que cette macro, qui extrait la sélection dans un autre onglet, puisse en faire de même mais d'un classeur à l'autre.
Grossomodo, la macro demanderait à l'utilisateur d'ouvrir le fichier dans lequel il souhaite extraire des données,
que la macro les sélectionne et les copie sur le classeur excel de départ.

Merci pour votre aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
173
Réponses
1
Affichages
323
Réponses
9
Affichages
385
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour