Formulatix
XLDnaute Nouveau
Bonjour,
Après moulte recherches et tests je tourne autour d’un code que je n’arrive pas à mettre en place pour modifier une macro (commentaires dans macro)
Plutôt que de créer une nouvelle ligne pour chaque enregistrement de données
A partir de la détection de la 1ere ligne dispo du tableau (cellule vide 1ère colonne)
Si je le souhaite (if then msgbox)
Effacer les valeurs de la ligne correspondante du tableau pour y enregistrer la série de données
Après moulte recherches et tests je tourne autour d’un code que je n’arrive pas à mettre en place pour modifier une macro (commentaires dans macro)
Plutôt que de créer une nouvelle ligne pour chaque enregistrement de données
A partir de la détection de la 1ere ligne dispo du tableau (cellule vide 1ère colonne)
Si je le souhaite (if then msgbox)
Effacer les valeurs de la ligne correspondante du tableau pour y enregistrer la série de données
VB:
Sub validaffect()
Dim tsaisaffect As ListObject
Dim tData As ListObject
Set tsaisaffect = ActiveSheet.ListObjects("t_saisaffect")
Set tData = ActiveSheet.ListObjects("t_affectation")
mb_affectmsgbox = MsgBox("Voulez vous confirmer ?", vbOKCancel, "CONFIRMATION")
If mb_affectmsgbox = vbCancel Then
Exit Sub
End If
With tData
'.ListRows.Add>>>>>>>>>>>>>>>>>>Ajout ligne supplémentaire au tableau LIGNE CODE A SUPPRIMER
' $$$$$$$$$$$$ Au lieu de rajouter systématiquement une ligne supplémentaire au tableau
' $$$$$$$$$$$$$JE SOUHAITE utiliser la première ligne disponible correpondant à la &ère cellule vide colonne 1 pour enregistrer les valeurs
Lastline = .ListRows.Count '>>>>>>>>>>Compte le nombre de lignes du tableau
Nbrcol = .ListColumns.Count '>>>>>>>>>>Compte le nombre de colonnes du tableau
Lastline = [t_affectation].End(xlDown).Row - 1 ' >>>>>>>redefini le N° de ligne du tableau de la 1ere cellule vide 1ere colonne
MsgBox "Lastline" & Lastline & "nbrecol" & Nbrcol '>>>>>>>>>>>>>>>>verifie N° de ligne dispo et nombre colonnes si OK
'$$$$$$$$$$$$$J'AI BESOIN de code supplémentaire pour effacer les valeurs de la ligne du tableau correspondante
'?????????????.ClearContents
.DataBodyRange(Lastline, 1) = tsaisaffect.DataBodyRange(1, 1).Offset(-1, 0)
k = 2
For j = 1 To 102
If tsaisaffect.DataBodyRange(j, 1) = 1 Then
.DataBodyRange(Lastline, k) = tsaisaffect.Range(j, 1).Offset(1, -1)
k = k + 1
End If
Next j
End With
End Sub