[VBA] Passer au suite du code si sélection vide

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

B

bjaouen

Guest
Bonjour le forum 🙂

Je sollicite votre aide car je n'arrive pas à trouver la solution à mon problème :/

Je cherche à faire un copier coller de données en fonction de plusieurs critères (ce que j'ai réussi à faire).


Cependant, dès lors qu'il n'y a pas de sélection disponible, le code se bloque avec une erreur 1004.
Je voulais donc mettre une condition du genre :

Si la sélection est vide, alors passer à la suite du code, sinon faire le copier/coller.


C'est cette partie où je bloque .. :/

Voila le fichier en espérant que vous trouverez 🙂
(Feuille INVENTAIRE, Macro "EXPORT_COMMANDES")

Fichier-F-B.xlsm
 
Re : [VBA] Passer au suite du code si sélection vide

bonjour

je n'ai pas accès à ton fichier, mais une idée:
prendre le problème à l'envers.. ne faire la copier coller que si la selection est NON vide..
if not selection is empty then
copy... paste..
end if
 
Re : [VBA] Passer au suite du code si sélection vide

Bonjour et merci d'avoir répondu aussi vite 🙂

J'ai essayé mais ça ne fonctionne pas non plus.
Ca me marque : Pas de cellule correspondante :/

Voila le code :


'#### CDP ####

'Activer la feuille concernée
Worksheets("CDP").Activate

'Effacer les données présentes
Range("A5:L26").ClearContents

'Mise en place des filtres
Worksheets("INVENTAIRE").Activate
ActiveSheet.Range("$C$4:$S$965").AutoFilter Field:=3, Criteria1:= _
"Coup de Pates"
ActiveSheet.Range("$C$4:$S$965").AutoFilter Field:=17, Criteria1:=">0", _
Operator:=xlAnd



If Not IsEmpty(Range("C7:S965")) Then
Sheets("INVENTAIRE").Range("C7:S965").SpecialCells(xlVisible).Copy

'Coller les données
Worksheets("CDP").Activate
Range("A5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("A5").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

'Cacher les colonnes en trop
Columns("I:K").Hidden = True

End If

'Supprimer le filtre mis en place dans "INVENTAIRE"
Worksheets("INVENTAIRE").Activate
ActiveSheet.ShowAllData


Peut-être qu'en voyant ça, tu auras une jolie idée 🙂
 
Re : [VBA] Passer au suite du code si sélection vide

Bonjour bjaouen, vgendron 🙂


remplacer
Code:
If Not IsEmpty(Range("C7:S965")) Then

par

Code:
If Application.Subtotal(3, Sheets("INVENTAIRE").Range("C7:S965"))> 0 then

A+
 
Re : [VBA] Passer au suite du code si sélection vide

Bonjour Paf (j'adore ton surnom x)

Hallelujah ça marche !!!!

Pourrais-tu m'expliquer un peu la fonction que tu as utilisé ? (j'avoue que j'ai un peu de mal à comprendre).
Est-ce que ça serait :
Si la cellule filtrée (field 3) est supérieure à 0, alors faire le copier coller ? 🙂

En te remerciant 🙂
 
Re : [VBA] Passer au suite du code si sélection vide

Re,


Application.Subtotal(3, Sheets("INVENTAIRE").Range("C7:S965"))

calcule le sous-total de la plage désignée, selon la fonction utilisée pour calculer le sous-total (ici 3 soit NBVAL)

pour les détails regarder l'aide de la fonction SOUS.TOTAL

A+
 
- 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
4
Affichages
592
  • Question Question
Microsoft 365 Bouton VBA
Réponses
4
Affichages
479
Retour