Lorsque je clic dans une liste déroulante de la colonne B les cellules adjacentes se vide, jusqu’à ici c'est bon, le but est de remettre à zéro les cellules!
Par contre, comme c'est un tableau structuré et lorsque je rajoute un mot par le biais de la liste déroulante en B10,B11,B12, etc, le code VBA ne suit pas l'extension du tableau, du coup je voulais savoir s'il est possible de modifier mon code de façon qu'à chaque ajout d'un mot en colonne B, mon code VBA prends en compte la ligne rajouté sinon je suis obligé de le faire manuellement en rajoutant quelques ligne de code
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour, Essaie ceci : Dans le module de la feuil1 '---------------------------- Private Sub worksheet_selectionchange(ByVal target As Range) Dim X As Range Set X = ListObjects("Tableau1").Range.Columns(1) If Not Intersect(target, X) Is Nothing Then target.Offset(, 1) = "" End If End Sub '---------------------------- MichD
Bonjour,
Essaie ceci :
Dans le module de la feuil1
'----------------------------
Private Sub worksheet_selectionchange(ByVal target As Range)
Dim X As Range
Set X = ListObjects("Tableau1").Range.Columns(1)
If Not Intersect(target, X) Is Nothing Then
target.Offset(, 1) = ""
End If
End Sub
'----------------------------
Bonjour, Essaie ceci : Dans le module de la feuil1 '---------------------------- Private Sub worksheet_selectionchange(ByVal target As Range) Dim X As Range Set X = ListObjects("Tableau1").Range.Columns(1) If Not Intersect(target, X) Is Nothing Then target.Offset(, 1) = "" End If End Sub '---------------------------- MichD
MichD
Une petite correction, tu veux vider les 2 colonnes '---------------------------- Private Sub worksheet_selectionchange(ByVal Target As Range) Dim X As Range Set X = ListObjects("Tableau1").Range.Columns(1) If Not Intersect(Target, X) Is Nothing Then Application.EnableEvents = False Target.Offset(, 1).Resize(, 2).ClearContents Application.EnableEvents = True End If End Sub '---------------------------- MichD
Une petite correction, tu veux vider les 2 colonnes
'----------------------------
Private Sub worksheet_selectionchange(ByVal Target As Range)
Dim X As Range
Set X = ListObjects("Tableau1").Range.Columns(1)
If Not Intersect(Target, X) Is Nothing Then
Application.EnableEvents = False
Target.Offset(, 1).Resize(, 2).ClearContents
Application.EnableEvents = True
End If
End Sub
'----------------------------
Une petite correction, tu veux vider les 2 colonnes '---------------------------- Private Sub worksheet_selectionchange(ByVal Target As Range) Dim X As Range Set X = ListObjects("Tableau1").Range.Columns(1) If Not Intersect(Target, X) Is Nothing Then Application.EnableEvents = False Target.Offset(, 1).Resize(, 2).ClearContents Application.EnableEvents = True End If End Sub '---------------------------- MichD
totontitus
Le jeudi 28 Janvier 2021 à 22:26 par totontitus :
Bonjour, Lorsque je clic dans une liste déroulante de la colonne B les cellules adjacentes se vide, jusqu’à ici c'est bon, le but est de remettre à zéro les cellules! Par contre, comme c'est un tableau structuré et lorsque je rajoute un mot par le biais de la liste déroulante en B10,B11,B12, etc, le code VBA ne suit pas l'extension du tableau, du coup je voulais savoir s'il est possible de modifier mon code de façon qu'à chaque ajout d'un mot en colonne B, mon code VBA prends en compte la ligne rajouté sinon je suis obligé de le faire manuellement en rajoutant quelques ligne de code lien du fichier https://www.cjoint.com/c/KACvsKKuuXj Merci Cordialement
Bonjour, MichD Impeccable, comme d'habitude vous m'avez donné la bonne solution, merci beaucoup de votre contribution Merci Cordialement
Le jeudi 28 Janvier 2021 à 22:26 par totontitus :
> Bonjour,
>
> Lorsque je clic dans une liste déroulante de la colonne B les cellules
> adjacentes se vide, jusqu’à ici c'est bon, le but est de remettre
> à zéro les cellules!
> Par contre, comme c'est un tableau structuré et lorsque je rajoute un
> mot par le biais de la liste déroulante en B10,B11,B12, etc, le code VBA
> ne suit pas l'extension du tableau, du coup je voulais savoir s'il est possible
> de modifier mon code de façon qu'à chaque ajout d'un mot en
> colonne B, mon code VBA prends en compte la ligne rajouté sinon je suis
> obligé de le faire manuellement en rajoutant quelques ligne de code
>
> lien du fichier
>
> https://www.cjoint.com/c/KACvsKKuuXj
>
>
> Merci
>
> Cordialement
Bonjour, MichD
Impeccable, comme d'habitude vous m'avez donné la bonne solution, merci beaucoup de votre contribution
Merci
Cordialement
Bonjour, Lorsque je clic dans une liste déroulante de la colonne B les cellules adjacentes se vide, jusqu’à ici c'est bon, le but est de remettre à zéro les cellules! Par contre, comme c'est un tableau structuré et lorsque je rajoute un mot par le biais de la liste déroulante en B10,B11,B12, etc, le code VBA ne suit pas l'extension du tableau, du coup je voulais savoir s'il est possible de modifier mon code de façon qu'à chaque ajout d'un mot en colonne B, mon code VBA prends en compte la ligne rajouté sinon je suis obligé de le faire manuellement en rajoutant quelques ligne de code lien du fichier https://www.cjoint.com/c/KACvsKKuuXj Merci Cordialement
Bonjour, MichD Impeccable, comme d'habitude vous m'avez donné la bonne solution, merci beaucoup de votre contribution Merci Cordialement
Michel__D
Bonjour, Le 14/06/2021 Í 22:55, totontitus a écrit :
Bonjour, Serait-il possible avec ce code ci-joint de copier aussi les formules puisque dans l'actuel les formules ne sont pas copier Sub CopyValuesAndNumberFormats() Dim CopyRng As Range, PasteRng As Range xTitleId = "KutoolsforExcel" Set CopyRng = Application.Selection Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId, CopyRng.Address, Type:=8) Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId, Type:=8) CopyRng.Copy PasteRng.Parent.Activate PasteRng.PasteSpecial xlPasteValuesAndNumberFormats PasteRng.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub Merci Cordialement
Voir l'aide sur la méthode .PasteSpecial pour voir quels paramêtres sont possibles.
Bonjour,
Le 14/06/2021 Í 22:55, totontitus a écrit :
Bonjour,
Serait-il possible avec ce code ci-joint de copier aussi les formules
puisque dans l'actuel les formules ne sont pas copier
Sub CopyValuesAndNumberFormats()
Dim CopyRng As Range, PasteRng As Range
xTitleId = "KutoolsforExcel"
Set CopyRng = Application.Selection
Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId,
CopyRng.Address, Type:=8)
Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId,
Type:=8)
CopyRng.Copy
PasteRng.Parent.Activate
PasteRng.PasteSpecial xlPasteValuesAndNumberFormats
PasteRng.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
Merci
Cordialement
Voir l'aide sur la méthode .PasteSpecial pour voir quels paramêtres sont possibles.
Bonjour, Le 14/06/2021 Í 22:55, totontitus a écrit :
Bonjour, Serait-il possible avec ce code ci-joint de copier aussi les formules puisque dans l'actuel les formules ne sont pas copier Sub CopyValuesAndNumberFormats() Dim CopyRng As Range, PasteRng As Range xTitleId = "KutoolsforExcel" Set CopyRng = Application.Selection Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId, CopyRng.Address, Type:=8) Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId, Type:=8) CopyRng.Copy PasteRng.Parent.Activate PasteRng.PasteSpecial xlPasteValuesAndNumberFormats PasteRng.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub Merci Cordialement
Voir l'aide sur la méthode .PasteSpecial pour voir quels paramêtres sont possibles.
MichD
Le 2021-06-14 Í 16:55, totontitus a écrit :
Bonjour, Serait-il possible avec ce code ci-joint de copier aussi les formules puisque dans l'actuel les formules ne sont pas copier Sub CopyValuesAndNumberFormats() Dim CopyRng As Range, PasteRng As Range xTitleId = "KutoolsforExcel" Set CopyRng = Application.Selection Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId, CopyRng.Address, Type:=8) Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId, Type:=8) CopyRng.Copy PasteRng.Parent.Activate PasteRng.PasteSpecial xlPasteValuesAndNumberFormats PasteRng.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub Merci Cordialement
Bonjour, Un petit exemple. Copier le contenu (textes + formules) de la plage "A1:C3" de l'onglet Feuil1 vers l'onglet Feuil2 '------------------------------- Sub Test() Dim T As Variant with Worksheets("Feuil1" T = .Range("A1:C3").Formula End With With Worksheets("Feuil2") .Range("A1").Resize(UBound(T, 1), UBound(T, 2)) = T 'A1 = La première cellule de la plage o͹ doit se faire la copie End With End Sub '------------------------------- MichD
Le 2021-06-14 Í 16:55, totontitus a écrit :
Bonjour,
Serait-il possible avec ce code ci-joint de copier aussi les formules
puisque dans l'actuel les formules ne sont pas copier
Sub CopyValuesAndNumberFormats()
Dim CopyRng As Range, PasteRng As Range
xTitleId = "KutoolsforExcel"
Set CopyRng = Application.Selection
Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId,
CopyRng.Address, Type:=8)
Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId,
Type:=8)
CopyRng.Copy
PasteRng.Parent.Activate
PasteRng.PasteSpecial xlPasteValuesAndNumberFormats
PasteRng.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
Merci
Cordialement
Bonjour,
Un petit exemple. Copier le contenu (textes + formules) de la plage
"A1:C3" de l'onglet Feuil1 vers l'onglet Feuil2
'-------------------------------
Sub Test()
Dim T As Variant
with Worksheets("Feuil1"
T = .Range("A1:C3").Formula
End With
With Worksheets("Feuil2")
.Range("A1").Resize(UBound(T, 1), UBound(T, 2)) = T
'A1 = La première cellule de la plage o͹ doit se faire la copie
End With
Bonjour, Serait-il possible avec ce code ci-joint de copier aussi les formules puisque dans l'actuel les formules ne sont pas copier Sub CopyValuesAndNumberFormats() Dim CopyRng As Range, PasteRng As Range xTitleId = "KutoolsforExcel" Set CopyRng = Application.Selection Set CopyRng = Application.InputBox("Ranges to be copied :", xTitleId, CopyRng.Address, Type:=8) Set PasteRng = Application.InputBox("Paste to (single cell):", xTitleId, Type:=8) CopyRng.Copy PasteRng.Parent.Activate PasteRng.PasteSpecial xlPasteValuesAndNumberFormats PasteRng.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub Merci Cordialement
Bonjour, Un petit exemple. Copier le contenu (textes + formules) de la plage "A1:C3" de l'onglet Feuil1 vers l'onglet Feuil2 '------------------------------- Sub Test() Dim T As Variant with Worksheets("Feuil1" T = .Range("A1:C3").Formula End With With Worksheets("Feuil2") .Range("A1").Resize(UBound(T, 1), UBound(T, 2)) = T 'A1 = La première cellule de la plage o͹ doit se faire la copie End With End Sub '------------------------------- MichD