Garder cellule après insertion/suppression lignes colonnes
Franck
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'ai créé des VBA avec des codes qui reprennent des cellules par exemple [C4]
Mais si j'ajoute une ligne avec ma cellule devient C5 et le VBA garde le C4.
Même chose pour les suppressions.
Quelle est la soluce ?
J'ai créé des VBA avec des codes qui reprennent des cellules par exemple [C4]
Mais si j'ajoute une ligne avec ma cellule devient C5 et le VBA garde le C4.
Même chose pour les suppressions.
Quelle est la soluce ?
A voir également:
- Garder cellule après insertion/suppression lignes colonnes
- Forcer suppression fichier - Guide
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Touche insertion clavier - Guide
28 réponses
Certes, mais je ne veux pas que ce soit la celulle de gauche de ma checkbox.
On peut choisir une cellule sans que ce soit celle de gauche ?
Si je rajoutes des colonnes, les colonnes à cacher changent aussi, il s'agit du même soucis ça décale tout ... (pour l'exemple de la feuille, les couleur jaune et verte sont toujours présente si on rajoute une colonne ).
Pas si facile..
On peut choisir une cellule sans que ce soit celle de gauche ?
Si je rajoutes des colonnes, les colonnes à cacher changent aussi, il s'agit du même soucis ça décale tout ... (pour l'exemple de la feuille, les couleur jaune et verte sont toujours présente si on rajoute une colonne ).
Pas si facile..
Salut Eric
De retour sur le sujet, je viens de passer un moment à décrypter ton code.
Je viens d'apprendre pas mal de choses sur la manipulation des "OLEobjects". Comme Franck à une ribambelle de checkbox à gérer, à partir de ton code, je me suis permis et lancé dans un essai histoire de lui simplifier l'adaptation à son problème
Sans garantie bien sûr
https://www.cjoint.com/?3GFqIUYsKPZ
Cordialement
De retour sur le sujet, je viens de passer un moment à décrypter ton code.
Je viens d'apprendre pas mal de choses sur la manipulation des "OLEobjects". Comme Franck à une ribambelle de checkbox à gérer, à partir de ton code, je me suis permis et lancé dans un essai histoire de lui simplifier l'adaptation à son problème
Sans garantie bien sûr
https://www.cjoint.com/?3GFqIUYsKPZ
Cordialement
C'est exactement ce principe la cc81, mais les cellules avec OUI/NON je voudrais pouvoir choisir la cellule et non pas systematiquement la gauche de la case.
Les cases ActiveX vont peut etre me simplifier la vie en faite..
Les cases ActiveX vont peut etre me simplifier la vie en faite..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est une usine à gaz
Peut être, mais les tuyaux sont tout petits et pas emmêlés, c'est déjà quelque chose, mais aussi, 80 chekcbox dans une feuille, tu t'attendais à quoi ?
Si ça répond à ton problème, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
RQ. On peut faire l'économie du paramètre cel dans la procédure cbclick, en calculant le nom de la cellule oui/non à partir du nom du checkbox passé (ça suppose que tes cb sont bien nommés cb01, ... et que les cellules soient nommées CB_01, ...), tu n'auras plus alors besoin de donner le nom de la cellule lors de l'appel à cbclick dans les Sub cbxx_Click()
Cdlmnt
Peut être, mais les tuyaux sont tout petits et pas emmêlés, c'est déjà quelque chose, mais aussi, 80 chekcbox dans une feuille, tu t'attendais à quoi ?
Si ça répond à ton problème, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
RQ. On peut faire l'économie du paramètre cel dans la procédure cbclick, en calculant le nom de la cellule oui/non à partir du nom du checkbox passé (ça suppose que tes cb sont bien nommés cb01, ... et que les cellules soient nommées CB_01, ...), tu n'auras plus alors besoin de donner le nom de la cellule lors de l'appel à cbclick dans les Sub cbxx_Click()
Cdlmnt
De rien
pour revenir à ma remarque
pour revenir à ma remarque
Private Sub cbClick(cb As Object, ocm As Long, ncm As Long)
Dim pl As Range, cel As String
Set pl = cb.TopLeftCell.Offset(0, ocm).Resize(1, ncm).EntireColumn
cel = Replace(cb.Name, "cb", "CB_")
cb.Caption = "Datas" & Right(cb.Name, 2) & " ( " & pl.Address(False, False) & " )"
pl.EntireColumn.Hidden = Not cb.Value
Range(cel).Value = IIf(cb, "oui", "non")
If Not noEvents Then cbT = Null
End Sub
Private Sub cb01_Click()
Call cbClick(cb01, 3, 2)
End Sub
Si, si tu expliques précisément ce que tu veux.
Quelle colonne en fonction ou non de la position de la checkbox ?
Quelle ligne en fonction ou non de la position de la checkbox ?
.offset(ligne,colonne) te permet de calculer un décalage.
Et cells() d'adresser directement une cellule.
Par exemple la cellule même ligne colonne A :
Cells(CheckBox2.TopLeftCell.Row, "A") = IIf(CheckBox2, "oui", "non")
eric
En fait dans notre exemple si la checkbox1 est cochée, ca affiche oui (sinon non ) et ca me masque les colonnes E:F. Jusque là, ca fonctionne.
Cependant si je rajoute une ligne et une colonne avant ces arguments c-a-d :
- ajout d'une ligne avant la ligne1 et une colonne avant colonneA
Donc ma cellule où mon résultat doit affiché oui doit être B2 et non A1 et les colonnes a masquer sont F:G et plus E:F
En faite les vba ne prennent pas en compte ces changements.
J'espere avoir été plus clair ;-)
A tester :
Private Sub CheckBox1_Click() Const offsetColMasquée As Long = 3 'masquer les colonnes à partir de x colonnes à droite (si positif, à gauche si négatif) de la checkbox Const nbColMasquée As Long = 2 ' nombre de colonnes à masquer Const offsetColMarque As Long = -1 ' -1 = oui/non 1 colonne à gauche Dim pl As Range, Obj As OLEObject Set Obj = ActiveSheet.OLEObjects("CheckBox1") Set pl = Obj.TopLeftCell.Offset(, offsetColMasquée).Resize(, nbColMasquée).EntireColumn Obj.Object.Caption = "Datas1 (" & pl.Address(False, False) & ")" pl.EntireColumn.Hidden = Not Obj.Object Obj.TopLeftCell.Offset(, offsetColMarque) = IIf(Obj.Object, "oui", "non") If Not noEvents Then CheckBox3 = Null End SubModifier les valeurs des constantes selon les checkbox, ainsi que son nom dans set Obj
https://www.cjoint.com/?DGFmxvij5vq
eric
PS: j'ai ajouté dans le libellé les colonnes concernées si ça t'intéresse. Si insertion il se met à jour après un clic dessus