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

XL 2013 macro ne fonctionne pas

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

Arctica

XLDnaute Nouveau
bonjour,

A l'aide d'une liste je souhaiterai tester la colonne A Si je trouve le nom équivalant dans la colonne, je souhaiterai en sélectionner la dernière cellule non vide et la mettre en en colonne L pour les 4 premier et en colonne M pour les 4 suivant
Voici mon code
With ActiveSheet
Set PlageRecherche = .Range("A:A").Find(what:=ListSh, LookIn:=xlValues, lookat:=xlWhole)
ListSh = Array("Annulé", "Chargé sur camion", Expédié/Facturé", "Pesé", "Désélectionné", "Emballage terminé", "En cours d'emballage", Imprimé" )
For i = PlageRecherche.End(xlUp).Row To 1 Step -1
Set PlageRecherche = .Range("A:A20").Find(what:=ListSh, LookIn:=xlValues, lookat:=xlWhole)
If Not PlageRecherche Is Nothing Then
Cells(1, Columns.Count).End(xlToLeft).Select
pouvez vous m'aider?
 
Re : macro ne fonctionne pas

Bonjour Arctica,

Te dire ce qui ne va pas dans ton code, sans fichier, reste compliqué, d'autant que ton titre est peu explicite sur ce qui ne fonctionne pas dans ta macro.

Dans le code partiel que tu nous fournis, il manque :
Next (car il y a un For)
End if (car il y a un If)
End With (car il y a un With).

Bon courage.

JB
 
Re : macro ne fonctionne pas

Bonjour,


voici le fichier en question
With ActiveSheet
Set PlageRecherche = .Range("A:A").Find(what:=ListSh, LookIn:=xlValues, lookat:=xlWhole)
ListSh = Array("Annulé", "Chargé sur camion", Expédié/Facturé", "Pesé", "Désélectionné", "Emballage terminé", "En cours d'emballage", Imprimé" )
For i = PlageRecherche.End(xlUp).Row To 1 Step -1
Set PlageRecherche = .Range("A:A20").Find(what:=ListSh, LookIn:=xlValues, lookat:=xlWhole)
If Not PlageRecherche Is Nothing Then
Cells(1, Columns.Count).End(xlToLeft).Select
End if
Next
End With
 

Pièces jointes

Re : macro ne fonctionne pas

Bonjour,
j'essaye ici une méthode plus simplifiée mais qui ne marche pas non plus

Dim PlageRecherche As Range
With ActiveSheet
Set PlageRecherche = .Range("A:A").Find(what:="Annulé", LookIn:=xlValues, lookat:=xlWhole)
If Not PlageRecherche Is Nothing Then
"la valeur est trouvée "
Cells("annulé", Columns.Count).End(xlToLeft).Copy Destination:=Range("o1")
"ma cellule Annulé a été trouvé et je veux donc selectionner la derniere cellule non vide de la ligne trouvée pour la copier en O1 mais cela ne fonctionne pas car incompatibilite de type"

End if
End With
End Sub
 
Re : macro ne fonctionne pas

Bonjour,

Pas vraiment compris tes attentes. Peux-tu donner un exemple des données de départ et du résultat escompté, ça sera plus simple à comprendre.

Tu as complété ton code, mais tu affectes une plage "PlageRecherche", avec find= ListSh avant de définir ton tableau ListSh.

@+
 
Re : macro ne fonctionne pas

Bonjour,

Pour obtenir le résultat recherche j'ai simplifiée la macro mais elle ne fonctionne pas pour incompatibilité de type (dernière ligne)donc: avec la méthode find je recherche une valeur dans la colonne A si je la trouve (ici Annulé), je voudrais sélectionner la dernière cellule non vide de la ligne de la valeur recherchée et coller cette cellule en cellule range ("o1")voici la macro
Dim PlageRecherche As Range
With ActiveSheet
Set PlageRecherche = .Range("A:A").Find(what:="Annulé", LookIn:=xlValues, lookat:=xlWhole)
If Not PlageRecherche Is Nothing Then
Range("annulé", Columns.Count).End(xlToLeft).Copy Destination:=Range("o1")
End If
End With
Merci pour votre aide
 
Re : macro ne fonctionne pas

Bonjour à tous,

je voudrais sélectionner la dernière cellule non vide de la ligne de la valeur recherchée et coller cette cellule en cellule range ("o1")

avec ce code
Code:
For Each cellule In Range("A2:A" & Range("A65535").End(xlUp).Row)
If cellule = "Annulé" Then
Range("O1") = Cells(cellule.Row, Range("G" & cellule.Row).End(xlToLeft).Column)
Exit Sub
End If
Next cellule

à+
Philippe
 
- 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

Discussions similaires

Réponses
2
Affichages
696
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…