Aide si cellule non vide cellule à gauche non vide
Bonjour à tous
j'utilise un bout de code vba pour trouver dans une zone chaque cellule contenant une valeur.
Je voudrais pouvoir vérifier que pour chaque cellules contenant une valeur, la cellule de gauche correspondante n'est pas vide.
Voici pour le moment le code que j'utilise
Sub test()
Sub test()
'cherche valeur dans la plage1
Set CellTest = Range("plage1").Find(What:="*", LookIn:=xlValues, LookAt:=xlWhole)
'si une valeur est trouvée
If Not CellTest Is Nothing Then
'on mémorise l'adresse de la première occurence trouvée
AdresseCell = CellTest.Address
Do
'on mémorise l'adresse de la cellule située à gauche de la mesure trouvée
Resultat = Resultat & CellTest.Address & " - "
'on continue la recherche
Set CellTest = Range("plage1").FindNext(CellTest)
'tant qu'on trouve une valeur et que l'occurence trouvée est différente de la première occurence trouvée
Loop While Not CellTest Is Nothing And CellTest.Address <> AdresseCell
'affichage du résultat
MsgBox "cellules trouvées " & Resultat
End If
End Sub
End Subet je joint un fichier pour exemple
Merci pour votre aide
Bonjour,
un essai :
Sub test()
Dim Plage As Range, Cel As Range, Résultat As String
Set Plage = ActiveSheet.Range("Plage1")
For Each Cel In Plage
If Cel.Value <> "" Then
If Cel.Offset(, -1).Value = "" Then Résultat = Résultat & Cel.Offset(, -1).Address & Chr(10)
End If
Next
MsgBox ("Liste des cellules vide avec une valeur en colonne B :" & Chr(10) & Résultat)
End SubPour mon test et je vous conseil d'en faire autant, j'ai supprimé les colonnes B et C, à première vue il n'est pas util d'avoir trois colonnes pour afficher une seule donnée... Si ce n'est pas assez large, alors il suffit d'élargir la colonne :
mettre le curseur de la souris sur le trait qui sépare la lettre A et B des entêtes de colonne, un trait noir avec deux flèches s'affiche, il suffit alors de cliquer gauche et de maintenir et de se déplacer dans un sens ou dans l'autre pour ajuster la largeur de la colonne qui se trouve à gauche du trait, cela marche également avec les lignes.
vbMBHB
Merci pour votre aide
J'ai retravaillé votre solution pour qu'elle réponde un peu plus à mes attente au final mon code ressemble à ça
Sub test()
Dim Plage As Range, Cel As Range, Résultat As String
Set Plage = ActiveSheet.Range("Plage1")
For Each Cel In Plage
If Cel.Value <> "" Then
If Cel.Offset(, -3).Value = "" Then
Résultat = Résultat & Cel.Offset(, -3).Address & Chr(10)
End If
End If
Next
If Résultat <> "" Then
MsgBox ("Liste des cellules vide avec une valeur en colonne D :" & Chr(10) & Résultat)
Else
MsgBox "suite de la procédure"
End If
End SubJ'ai modifié l'offset pour pouvoir travaillé sur des cellules fusionnées car j'ai besoin de conserver cette mise en page.
Encore merci votre solution m'a bien aidé
Merci
vbMBHB