Une Remise à Zéro & 1 importation de données qui se font incomplètement
Bonsoir,
J'ai voulu effacer toutes les données d'un tableau à l'aide d'un bouton "Mettre tout le tableau à zéro" mais ça se fait de façon incomplète :
Sur la 10ème ligne du VBA ci-dessous, il faudrait trouver un code qui efface 200 lignes et non DerLig_f2 + 10
Sub RAZ_5_ateliers()
Application.ScreenUpdating = False
Set f2 = Sheets("5 ateliers")
DerLig_f2 = f2.Range("Z" & f2.Rows.Count).End(xlUp).Row
'message d'avertissement
If MsgBox("Attention, Toutes les données seront éffacées,Souhaitez-vous continuer?", vbYesNo + vbCritical + vbDefaultButton2, "effacement total") = vbNo Then Exit Sub
'enlever le mot de passe
f2.Unprotect Password:="seb"
f2.Range("A3:X" & DerLig_f2 + 10).Clear 'Effacement de tous les nomns, prénoms et scores des colonnes A à V de la f2 +10 lignes supplémentaires
f2.Range("D3:W" & DerLig_f2).Value = 0
'Formule colonne Total (X)
f2.Range(f2.Cells(3, "X"), f2.Cells(DerLig_f2, "X")).FormulaR1C1 = "=SUM(RC4:RC23)"
f2.Columns("X:X").Font.Bold = True
'Application des validations de données
Range("C3").Select
With f2.Range(f2.Cells(3, "D"), f2.Cells(DerLig_f2, "S")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0,1,3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
With f2.Range(f2.Cells(3, "T"), f2.Cells(DerLig_f2, "W")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Quadrillage_5_ateliers 'application d'un Quadrillage_5_ateliers
Centrage_Des_Valeurs_5_ateliers
End SubEt le quadrillage_5_ateliers ne se fait pas en totalité sur mes 200 lignes :
Ca vient surement de ==> For i = 4 To 20 Step 4 /// qui s'arrête à 60 lignes mais je ne suis pas sûr
Sub Quadrillage_5_ateliers()
With Range("TBL_5Ateliers").ListObject
.Range.Borders.Weight = xlThin
.Range.BorderAround Weight:=xlMedium
For i = 4 To 20 Step 4
.ListColumns(i).Range.Resize(, 4).BorderAround Weight:=xlMedium
Next i
.HeaderRowRange.BorderAround Weight:=xlMedium
End With
End SubEt toute dernière chose :
le bouton "Importer Liste des NOMS PRENOMS" n'efface pas les anciens noms et n'écrase que la place pour insérer les nouveaux noms (les 3 entourés en bleu ci-dessous) :
Merci d'avoir lu mon sujet
Sur le bouton "Débloquer ou Quitter", tapez vodoraix pour tt débloquer.
Et mot de passe pour débloquer les feuilles ==> seb
Bonne soirée
Bonjour,
Pour la première question: comme il s'agit d'un tableau structuré, pour récupérer la dernière ligne il vaut mieux faire ceci:
DerLig_f2 = f2.ListObjects("TBL_5Ateliers").DataBodyRange.Rows.CountCela s'applique aussi pour la troisième question.
Pour la deuxième question concernant le quadrillage: Pour ma part, je laisserai tomber la boucle et passerai plutôt par ceci, qui me semble beaucoup plus rapide:
Sub Quadrillage_5_ateliers()
With Range("TBL_5Ateliers").ListObject.Range
.Borders.Weight = xlThin 'quadrillage fin pour toutes les lignes et colonnes
.Resize(, 3).BorderAround Weight:=xlMedium 'bordure droite la colonne C
.Resize(, 7).BorderAround Weight:=xlMedium 'bordure droite la colonne G
.Resize(, 11).BorderAround Weight:=xlMedium 'bordure droite de la colonne K
.Resize(, 15).BorderAround Weight:=xlMedium 'bordure droite de la colonne O
.Resize(, 19).BorderAround Weight:=xlMedium 'bordure droite de la colonne S
.Resize(, 23).BorderAround Weight:=xlMedium 'bordure droite de la colonne W
End With
End SubCdlt
Bonjour Arturo83 et merci beaucoup
Désolé, j'étais au travail ce matin...
RAZ se fait impec
Mais les validations de données s'arrêtent à la ligne 48 du tableau Excel...
Et toutes mes MFC ont disparu
'Application des validations de données
Range("C3").Select
With f2.Range(f2.Cells(3, "D"), f2.Cells(DerLig_f2, "S")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0,1,3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
With f2.Range(f2.Cells(3, "T"), f2.Cells(DerLig_f2, "W")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End WithEt j'ai toujours mon bouton "Importer Liste des NOMS PRENOMS" qui n'efface pas les anciens noms et n'écrase que la place pour insérer les nouveaux noms.
Parfait le quadrillage
Merci pour ton aide.
Bon après-midi
re,
toutes ces macros sont une violation des tableaux structurés
Bonsoir Bart'
J'ai l'impression que j'ai fait une bêtise ==> Un peu comme à l'école, au collège, quand le prof dit à la classe, "Bon ça suffit, sortez une copie double, vous êtes la pire classe que j'ai jamais eu !"
Bonjour Bart' & flexion-poutre. Merci beaucoup pour vos interventions
Bart', je te laisse apprécier les propositions de flexion-poutre qui a parfaitement ciblé tous les points importants !!!!
J'ai commencé à faire qqes essais :
Quand je veux enregistrer un 2ème nom de la liste (double-clic dans "BBB"), y'a un message d'erreur :
J'ai les entêtes qui ont des validations de données :
D'ailleurs, est-ce possible de fusionner de D1 à G1 ou alors je dois faire autrement pour afficher l'entête du premier Atelier ?
Puis-je reformuler mes 4 MFC sans risque qu'elles soient effacées ?
Pour les plages de validation, je peux enregistrer ça ==> =$A$3:$C$200;$X$3:$X$200 //// ou alors autrement ?
Sinon, j'ai testé les autres boutons ==> Et tt marche impec !!!!
Merci beaucoup à tous les 3
Bonne journée
re,
un TS gère soi-même ses formats, ses MFCs, ses validations, ses bordures, ... , donc s'ils sont présents, il ne faut plus les renouveller. Ajouter 200 lignes vides à un TS est stupide.
D'accord, merci pour ce nouveau conseil avisé... Je ne ferai donc plus de MFCs, c'est dommage car c'était plus simple à composer que du code VBA auquel je ne comprends pas grand chose...
Et vais donc voir pour du code VBA qui fasse mes 4 actions nécessaires pour repérer certaines conditions de lignes.
Bonne après-midi...
A bientôt
Est-ce que c'est mieux que j'ouvre un nouveau sujet ?