[Résolu] Définir une plage de données variable

Lebonetletruand

XLDnaute Occasionnel
Bonsoir,

J'essaye de mettre en place une macro empêchant la modification d'une cellule si la saisie des informations à son sujet a commencé dans la base de données. La macro bloque sur la ligne en rouge dans la macro ci-dessous. Je n'arrive pas à trouver les termes pour nommer la plage de cellules variable.

Merci par avance de votre aide

Code:
For i = 8 To 10

[COLOR="Red"]Set ColVide = Workbooks("Commande.xls").Sheets("Feuilles").Range(Cells(8, i), Cells(127, i))[/COLOR]
If Not Intersect([cells(i-4, 2)], Target) Is Nothing Then

If Application.WorksheetFunction.CountA(ColVide) = 0 Then
MsgBox ("Attention, le tableau des réponses a commencé à être complété. Un changement dans la liste des adhérents est fortement déconseillé")

End If

End If
Next i
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Définir une plage de données variable

Salut Lebonetletruand et le forum
Sans garantie, n'ayant qu'un extrait de la macro, et sans idée de ce qu'elle doit faire
Code:
with Workbooks("Commande.xls").Sheets("Feuilles")
     Set ColVide = .Range(.Cells(8, i), .Cells(127, i))
end with
A+
 

Banzai64

XLDnaute Accro
Re : Définir une plage de données variable

Bons...jour

Moi c'est la ligne suivante qui m'intrigue

Code:
If Not Intersect([COLOR="Red"][[/COLOR]cells(i-4, 2)[COLOR="Red"]][/COLOR], Target) Is Nothing Then

Cela serait bien avec un fichier sans données confiden....etc
 

Lebonetletruand

XLDnaute Occasionnel
Re : Définir une plage de données variable

Bonsoir Gorfael, Banzai64, carcharodon-carcharias, et merci à vous pour l'intervention rapide et efficace (sourire)

J'ai retenu la première réponse et çà fonctionne.
Pour la petite histoire, voici la macro complète et son objectif.

J'ai tenu compte de ta remarque également Banzai. Je n'avais pas prévu ce blocage puisque la macro buggait avant (sourire).

Maintenant, ça fonctionne. Il me reste à l'aménager un peu pour la forme mais le principe est bon.

La macro complète figure ci-dessous. L'objectif est un peu expliqué par la réponse de la msgbox. Deux feuilles permettent d'une part la saisie des noms des adhérents, adresses, CP,...., et d'autre part, la saisie de leur commande. La première feuille alimente la seconde pour les noms uniquement. L'opérateur saisie la commande colonne par colonne dans la seconde feuille (les chiffres).
Si l'opérateur, pour une raison x ou y décide de modifier la première feuille, les noms des adhérents ne seront plus en adéquation avec les quantités commandées. Ils faut donc avertir l'opérateur de celà.
Voici la raison de la macro. J'ai joint un petit fichier exemple (le fichier d'origine contient trop de données personnelles). Si l'on modifie l'adhérent A, le message s'affiche car la feuil2 a commencé à être complétée pour lui. Par contre pour l'adhérent B, non.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 8 To 10
' Zone complète = 8 to 67
With Workbooks("Classeur2.xls").Sheets("Feuil2")
Set ColVide = .Range(.Cells(8, i), .Cells(127, i))
End With
 
If Not Intersect(Cells(i - 4, 2), Target) Is Nothing Then
If Application.WorksheetFunction.CountA(ColVide) <> 0 Then
MsgBox ("Attention, le tableau des réponses a commencé à être complété. Un changement dans la liste des adhérents est fortement déconseillé")

End If

End If
Next i

End Sub

Merci à tous, bonne nuit
 

Pièces jointes

  • Classeur2.xls
    23 KB · Affichages: 69
  • Classeur2.xls
    23 KB · Affichages: 61
  • Classeur2.xls
    23 KB · Affichages: 60

Lebonetletruand

XLDnaute Occasionnel
Re : [Résolu] Définir une plage de données variable

Carcharodon, l'aménagement prévoyait d'offrir cette possibilité, d'annuler la modification, voire de supprimer la colonne de réponse pour l'adhérent concerné, ..., enfin je vais réfléchir à ça mais de toutes manières, c'est assez simple à mettre en place. Merci en tout cas pour l'idée.

Kjin,
je n'ai pas de problème sur la boucle For Next mais sur la ligne en rouge.
Comme dans l'autre message, c'est le début d'une boucle.... qui fonctionne....
 

Discussions similaires

Réponses
7
Affichages
430

Statistiques des forums

Discussions
312 579
Messages
2 089 880
Membres
104 298
dernier inscrit
MarieCB