Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide pour modification macro existante

  • Initiateur de la discussion Initiateur de la discussion megansport
  • 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 !

M

megansport

Guest
Bonjour
Voici ma macro ci dessous, elle me permet de faire une recherche en fonction d'une référence numérique mais je dois la modifier car j'ai de nouvelles références avec des lettres et des chiffres ( par exemple AR107)
Elle devra me servir pour extraire les références numériques et alpha-numériques
Voici la macro

Public Sub extraction()
Dim DerL As Long, L As Long, Li As Long, Cel As Range

Application.ScreenUpdating = False

Worksheets("feuil3").Cells.Clear

With Worksheets("nomsphotos")
liste = .Range("A1:A" & .Range("A1000").End(xlUp).Row)
End With
For L = 1 To UBound(liste, 1)
liste(L, 1) = Mid(liste(L, 1), InStr(liste(L, 1), "_") + 1)

Next

With Worksheets("bdd")
DerL = .Range("A1000").End(xlUp).Row
For L = 1 To UBound(liste, 1)
Set Cel = .Columns(1).Find(CDbl(liste(L, 1)), LookIn:=xlValues, LookAt:=xlWhole)
If Not Cel Is Nothing Then
Li = Worksheets("feuil3").Range("A1000").End(xlUp).Row + 1
.Range("A" & Cel.Row & ":M" & Cel.Row).Copy Destination:=Worksheets("feuil3").Range("A" & Li)
End If
Next
End With

Worksheets("feuil3").UsedRange.Columns.AutoFit

Application.ScreenUpdating = True

End Sub


Merci de votre aide
 
Re : Aide pour modification macro existante

Bonsoir Megansport, bonsoir le forum,

Voilà ce que je te propose. Tu prends ton fichier et tu le jettes... Ensuite avec le code que tu nous a donné et un fichier vierge, tu essaies de faire avancer la macro pas à pas pour comprendre comment elle fonctionne. Ha c'est ch...t hein ! Il faut renommer les onglet sinon ça plante. Et puis il faut des données qui conviennent sinon le code plante...
Tu l'auras compris, ce que je voudrais te faire comprendre, de façon un peu abrupte j'en conviens, c'est que sans fichier exemple il nous est difficile de te venir en aide. Alos fait toi aussi un petit effort et les choses iront beaucoup plus vite.
 
Re : Aide pour modification macro existante

bonjour megansport
à tester
Code:
For L = 1 To UBound(liste, 1)
if isnumeric(liste(L, 1)) then x=CDbl(liste(L, 1)) else  x=liste(L, 1)
Set Cel = .Columns(1).Find(x), LookIn:=xlValues, LookAt:=xlWhole)
 
Re : Aide pour modification macro existante

Bonsoir le fil, bonsoir le forum,

Tu aurais dû tester la proposition de Bebere car elle fonctionne. Sinon une autre option, remplacer CDbl par CStr.
Code:
Public Sub extraction()
Dim DerL As Long, L As Long, Li As Long, Cel As Range

Application.ScreenUpdating = False
Worksheets("feuil3").Cells.Clear
With Worksheets("nomsphotos")
    liste = .Range("A1:A" & .Range("A1000").End(xlUp).Row)
End With
For L = 1 To UBound(liste, 1)
    liste(L, 1) = Mid(liste(L, 1), InStr(liste(L, 1), "_") + 1)
Next
With Worksheets("bdd")
    DerL = .Range("A1000").End(xlUp).Row
    For L = 1 To UBound(liste, 1)
        Set Cel = .Columns(1).Find(CStr(liste(L, 1)), LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cel Is Nothing Then
            Li = Worksheets("feuil3").Range("A1000").End(xlUp).Row + 1
            .Range("A" & Cel.Row & ":M" & Cel.Row).Copy Destination:=Worksheets("feuil3").Range("A" & Li)
        End If
    Next
End With
Worksheets("feuil3").UsedRange.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
 
- 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
5
Affichages
911
Réponses
4
Affichages
734
Réponses
4
Affichages
755
Réponses
10
Affichages
791
Réponses
7
Affichages
367
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…