Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Hugues
  • 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 !

Hugues

XLDnaute Impliqué
Bonjour le Forum

Dans un classeur j'ai une 1ere feuille qui s'appelle sommaire (que j'ai nommé ws1).
Dans cette feuille en colonne B il y a les codes des clients (qui correspondent aux noms des onglets des autres feuilles.
Cette feuille récapitule toutes les données contenues dans les autres (pour info, les autres feuilles sont identiques).
Je souhaiterais mentionner dans la feuille sommaire, en face du code client donc en colonne C, si dans la feuille du client les cellules ("D86:I91") sont vides, "Pas de commentaires"

For a = 9 To derlignews1 ' du permier au dernier client
code = WS1.Range("B" & a).Value
For Each WS In ThisWorkbook.Worksheets ' Teste toutes les feuilles du classeur
If WS.Name = code Then
'une serie d'instructions
If WS.Range("D86:I91") Is Empty Then
WS1.Range("P" & a) = "Pas de commentaire"
End If
End If
Next
Next a


Pourriez vous m'aider à comprendre mon erreur ?

Je vous remercie par avance,

Hugues
 
Re : Code VBA

Bonjour

Code:
Function RangeIsEmpty(ByVal SourceRange As Range) As Boolean
RangeIsEmpty = (WorksheetFunction.CountA(SourceRange) = 0)
End Function
Pour tester la fonction
Code:
Sub testo()
MsgBox RangeIsEmpty(Sheets(1).Range("A1:a10"))
End Sub
A tester avec ton code
....
If RangeIsEmpty(WS.Range("D86:I91")) Then
.....

PS: Pour ce qui concernce ton code: La syntaxe correcte est
Code:
If IsEmpty(range("a1")) then msgbox "vide"
et pas Is Empty
 
Dernière édition:
Re : Code VBA

Re

Tu peux aussi te passer de la fonction et faire directement

Code:
I[COLOR=Black]f[/COLOR][COLOR=Black] Application.WorksheetFunction.CountA([/COLOR]WS.Range("D86:I91")[COLOR=Black]) = 0 Then
[/COLOR]


A titre d'exemple:
Code:
Sub test_plage_vide()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If Application.WorksheetFunction.CountA(ws.Range("A1:A10")) = 0 Then
MsgBox "Dans la feuille: " & ws.Name & " la plage A1:A10 est vide"
End If
Next ws
End Sub
 
Dernière édition:
Re : Code VBA

Bonjour JM,

Tout d'abord merci pour ta réponse rapide.
J'ai essayé mais cela ne fonctionne pas ; J'ai un message d'erreur "Sub ou Function non définie"
Voici mon code aprés rectification :
For a = 9 To derlignews1
code = WS1.Range("B" & a).Value
For Each WS In ThisWorkbook.Worksheets ' Teste toutes les feuilles du classeur
If WS.Name = code Then
WS1.Range("D" & a) = WS.Range("E55")
WS1.Range("E" & a) = WS.Range("F55")
WS1.Range("F" & a) = WS.Range("G55")
WS1.Range("G" & a) = WS.Range("G55") / WS.Range("G51")
WS1.Range("H" & a) = WS.Range("G23")
WS1.Range("I" & a) = WS.Range("G27")
WS1.Range("J" & a) = WS.Range("G33")
WS1.Range("K" & a) = WS.Range("G35")
WS1.Range("L" & a) = WS.Range("G39")
WS1.Range("M" & a) = WS.Range("G44")
WS1.Range("N" & a) = WS.Range("F74")
WS1.Range("O" & a) = WS.Range("G74")
If RangeIsEmpty(WS.Range("D86:I91")) Then ' Si pas de commentaire
WS1.Range("P" & a) = "Pas de commentaire"
End If
End If
Next
Next a


J'avoue que je ne comprends pas l'erreur.
Merci par avance pour l'aide,

Hugues
 
Re : Code VBA

Re bonjour,

Excusez moi tous mais aujourd'hui ce n'est pas la forme.
J'ai toujours un souci et j'avoue que ne comprends rien aujourd'hui. Le WE fut un peu chargé.

Je joins un fichier expliquant mon souci.

Encore mille mercis pour l'aide

Hugues
 

Pièces jointes

- 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
5
Affichages
574
Réponses
3
Affichages
326
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
982
Réponses
15
Affichages
788
Réponses
7
Affichages
454
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…