XL 2010 Vérifier contenu colonnes dans plage de tableau variable

miliev83

XLDnaute Occasionnel
Bonjour,

J'ai un tableau qui contient 46 colonnes mais le nombre de lignes n'est jamais le même.

J'aimerai tester au moment de fermer et de sauvegarder le classeur, vérifier 2 conditions :

- qu'il n'y a aucune cellule vide dans les colonnes 1 2 3 4 5 8 11 12 13 14 15 16 17 21 22 24 26 27 30 34 37 38
- qu'il n'y ai aucun 0 dans la colonne 23

Et si possible que cela colorie les cellules qui posent problèmes

Merci d'avance :)
 

miliev83

XLDnaute Occasionnel
merci mais en fait je pensais à une macro, pour l'instant j'utilise ce code

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.WorksheetFunction.CountIf(Sheets("Feuil1").Range("A:A"), "") > 0 Then
Cancel = True
MsgBox "vérifier colonne A"
End If
End Sub


Seulement je voudrais le faire sur toutes les colonnes que j'ai cité et jusqu'a la derniere ligne de la colonne A
 

CISCO

XLDnaute Barbatruc
Bonsoir

Peut être avec quelque chose du genre
Code:
For col = 1 To 38
Select Case col
Case Is = 1, 2, 3, 4, 5, 8, 11, 12, 13, 14, 15, 16, 17, 21, 22, 24, 26, 27, 30, 34, 37, 38
DernièreLigne = Cells(1048576, col).End(xlUp).Row
If Application.WorksheetFunction.CountIf(Sheets("Feuil1").Range(Cells(1, col), Cells(DernièreLigne, col)), "") > 0 Then
Cancel = True
MsgBox "vérifier colonne"
End If
End Select
Next col

@ plus
 

CISCO

XLDnaute Barbatruc
Bonsoir

Si tu supprimes la première ligne, le pas à pas détaillé permet de mettre en évidence la cellule vide de la 5ème colonne.

N'ayant pas trop le temps en ce moment, ni un niveau très élevé en VBA, je ne peux t'aider facilement et davantage dans l'immédiat. J'essayerai un peu plus tard, dans les jours à venir.

@ plus
 

chris

XLDnaute Barbatruc
Bonjour
Coucou Cisco ;)

miliev83 : tu as oublié de préciser que tu travailles sur une seule ligne : si ta colonne n'a qu'une ligne de titre renseignée et rien dessous, pour Excel ta colonne ne fait qu'une ligne et il n'y a donc pas de cellule vide.

Quand tu écris "le nombre de lignes n'est jamais le même" on déduit que chaque colonne a un nombre de lignes différent.

Si toute tes colonnes ont la même nombres de lignes alors on doit raisonner en fonction de la dernière ligne contenant des données quelle que soit la colonne.

Peux-tu donc préciser ton cas.
 

CISCO

XLDnaute Barbatruc
Bonjour à tous, bonjour Chris

@ Chris : Je pense que dans le fichier réel de miliev83, chaque colonne a un nombre de lignes différent. Son fichier en pièce jointe n'est donc pas très représentatif de la situation, mais il est facile à modifier. Autre petit détail, je pense que les diverses vérifications demandées doivent être faites automatiquement à la fermeture du fichier (et empêcher celle-ci si...).

@ plus
 

chris

XLDnaute Barbatruc
RE
...
@ Chris : Je pense que dans le fichier réel de miliev83, chaque colonne a un nombre de lignes différent. Son fichier en pièce jointe n'est donc pas très représentatif de la situation, mais il est facile à modifier. Autre petit détail, je pense que les diverses vérifications demandées doivent être faites automatiquement à la fermeture du fichier (et empêcher celle-ci si...).

Oui mais si c'est sur la dernière ligne de la colonne qu'il faut vérifier l'absence de donnée, on a le même problème si on se réfère à cette unique colonne pour déterminer la hauteur...
 

CISCO

XLDnaute Barbatruc
Rebonjour

@ Chris

J'ai l'impression qu'il faut déterminer le n° de la dernière ligne non vide de la première colonne, puis vérifier si les cellules de cette colonne, de la ligne 1 à cette dernière ligne particulière, ne sont pas vides. Puis faire de même avec la colonne 2, et ainsi de suite, de colonne en colonne.

@ plus
 
Dernière édition:

Si...

XLDnaute Barbatruc
Salut

voir Si... les propostions* peuvent donner des idées.

*si le nombre de lignes est très important, un tableau VBA pourrait se révéler plus rapide
 

Pièces jointes

  • ContrôleAvantSauvegarde1 .xlsm
    329.8 KB · Affichages: 42
  • ContrôleAvantSauvegarde2 .xlsm
    330.9 KB · Affichages: 44

miliev83

XLDnaute Occasionnel
Salut tout le monde, Désolée je viens seulement de voir vos messages

Alors en fait, je peux avoir un tableau de minimum 2 lignes (titre + une ligne de données ) voir + l'infini mais à chaque fois le nombre de ligne est le meme pour chaque colonne.

Cest pour ça que je souhaite vérifier que je n'ai oublié aucune cellule dans les colonnes et qu'il n'y ai aucun "0" dans la colonne 23
 

miliev83

XLDnaute Occasionnel
L'idéal meme mais je ne sais pas si c'est faisable, ce serait également de vérifier qu'il n'y a aucune donnée dans les autres colonnes (hormis le titre)

Du coup sur ton exemple, cela donnerait ça
en jaune les cellules qu'il faut renseigner
en vert le 0
et en bleu les données à supprimer

J'espere que vous arriverez à y voir plus clair :)
 

Pièces jointes

  • exemple.xlsx
    320.7 KB · Affichages: 54
Dernière édition:

Discussions similaires

Réponses
12
Affichages
680

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet