XL 2016 Chekbox et fonction copier coller

zic04

XLDnaute Nouveau
Bonjour,

Il me reste 2 solutions à trouver :
1) Dans la feuille Tableau ajouter des colonnes avec la même mise en forme que la colonne B ou C dans une colonne vide.
2) Gérer l'impression du tableau sur une feuille pour afficher Col B/C - Col B/D ... si non vide

Chekbox : ok
Reset Chekbox : ok



J'ai une feuille "formulaire ou j'ai inséré des chekbox quand je sélectionne la chekbox je voudrais qu'elle réalise un copier coller.

Ex : "Formulaire" en C4/D4/E4 j'ai des chekbox et quand je valide une des chekbox je veux réaliser un copier coller d'une autre feuille "formulaire" E3:E18

Merci de me donner un petit coup de main car j'ai pas trouvé de solution viable.
Je voudrais utilisé la même formule sur toute les chekbox car je copie toujours la même plage.

Par avance merci.
 

Fichiers joints

Dernière édition:

zic04

XLDnaute Nouveau
J'ai assigné le code suivant :

Private Sub CheckBox3_Click()

If Range("C4").Value = False Then
Range("C5:C20").ClearContents
End If
If Range("C4").Value = True Then

La fonction false fonctionne, pour la True ne fonctionne pas.
Avec une macro fonctionne :

Sub test()
'
' test Macro
'Feuil1 -> nom de l'onglet de la feuille source
'Feuil2 -> nom de l'onglet de la feuille destination
Application.EnableEvents = False
With Worksheets("Tableau")
Formumaire.Range("E3:E18").Copy Destination:=Sheets("Sauvegarde1").Range("C5:C20")

End With
Application.EnableEvents = True
End Sub

Si vous avez une idée
 

Bebere

XLDnaute Barbatruc
bonjour Zic
bienvenue
meilleurs voeux à tous pour 2017
avec un fichier tu aurais déjà eu une réponse
une possibilité en pièce jointe
 

Fichiers joints

zic04

XLDnaute Nouveau
Bonjour,

Merci beaucoup exactement ce que je voulais faire.
Meilleurs voeux à tous pour 2017.


J'ai 2 bug qui sont apparut du coup.
Dans la feuille tableau quand je clique sur masquer les lignes il y à une erreur et quand je fais masquer colonne et que seulement la première est rempli la seconde reste aussi.


Merci encore pour le travail Bebere
 

Fichiers joints

Bebere

XLDnaute Barbatruc
Zic avec option explicit tu es obligé de déclarer les variables
exemple pour i : dim i as long (ligne après option explicit ou en tête de procédure)
si tu veux cacher les checkbox, me.checkbox1.visible= false,montrer me. checkbox1.visible=true
içi me fait référence à la feuille qui contient les objects(checkbox)
tu as un menu déroulant qui apparait quand tu tapes le point
voir aide touche fonction F1
 

zic04

XLDnaute Nouveau
Voila j'ai réglé le problème pour les lignes fonctionne à nouveau.
Par contre la chekbox cacher les colonnes disparait.
J'ai toujours le même problème si colonne 1 2 3 rempli je clique sur cacher les colonnes la 4 reste toujours présente surement un bug dans le code.

Merci encore ^^
 

Fichiers joints

zic04

XLDnaute Nouveau
Super, fonctionne parfaitement je profite pour te poser 2 autres questions :

Dans la feuille tableau j'ai une macro reiniciar pour réinitialiser le tableau les checkbox en C4 / D4 ... ne se réinitialise pas une solution ?

J'ai besoin d'ajouter des colonnes dans le tableau (ex : copier/coller colonne E) pour ajouter des clients.
Quand je fais un copier coller toute les informations ne passe pas : chekbox / couleurs ...
 

Bebere

XLDnaute Barbatruc
bonjour Zic
en regardant un peu plus le fichier,je pense qu'il serait intéressant de passer par un userform(formulaire)
qu'en penses-tu
 

zic04

XLDnaute Nouveau
Quand je clique sur masquer les colonnes je voudrais garder les boutons visible quand la colonne pas maswuer
Par avance merci
 

Fichiers joints

Dernière édition:

Bebere

XLDnaute Barbatruc
bonjour
Zic ajout d'une formule dans source de validation de données feuille tableau
changement du code checkbox1

Code:
Sub AjoutColonne()
    Dim c As Byte
    Worksheets("Tableau").Activate
    Union(Range("Tableau1[maricel]"), Range("Tableau1[maricel]")(0)).Select
    c = Selection.Column
    Selection.Copy
    Cells(3, c + 1).Select
    ActiveSheet.Paste
   creation (Cells(4, c + 1))
End Sub

Sub creation(cel As Range)
Dim Cb As OLEObject
Set Cb = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1")
With Cb
    .Left = cel.Left + 25
    .Top = cel.Top + 5
    .Width = 20 'largeur
    .Height = 20 'hauteur
'    .Name = "CB" & cel.Column '<-- attribution du nom
    .Object.Caption = ""
End With

End Sub
 

Fichiers joints

Dernière édition:

zic04

XLDnaute Nouveau
Bonjour,
Merci je vais traduire les quelques mots qu'il reste.

Il y à juste pour l'impression pas trop d'idée
Il faut que je trouve une solution pour imprimer la colonne B et C - B et D ... avec les colonnes suivantes imprimé.

Merci pour la résolution des différents problème que j'ai rencontré.
 

Bebere

XLDnaute Barbatruc
Voilà Zic
à tester
Code:
Sub ImprimeFeuil()

    With Sheets("Tableau").Range("B:B,C:C")    'remplace les lettres pour les colonnes à cacher
        .EntireColumn.Hidden = True
        .PrintOut
        'ou à la plae de printout
        'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        .EntireColumn.Hidden = False
    End With

End Sub
 

zic04

XLDnaute Nouveau
Je viens de tester quand je lance la macro page blanche.


En fait ce que je veux c'est imprimer des étiquettes donc il me faut toujours la colonne B produit suivi d'un client.

Au lieu de colonne a cacher je pense qu'il faudrait choisir colonne a afficher si colonne non vide.
 

zic04

XLDnaute Nouveau
Voila le dernier fichier traduit après de nombreux test il subsiste un problème et à trouver une solution pour l'impression.

Dans la feuille Canasta_ le bouton "Salvar " éalise une sauvegarde A2:AF3 et colle les fichiers sur la feuille Salvar.
Il me colle aussi les colonnes vides si vous avez une solution.


Trouver une solution pour imprimer les colonnes rempli (dans le fichier en pj B:C / B:D / B:E) le nombre de colonne change régulièrement.
Merci
 

Fichiers joints

Bebere

XLDnaute Barbatruc
bonjour
Zic voilà une partie de ta demande
pour imprimer donne un exemple,je pense que tu veux mettre les données dans la feuille print
je joins ar16,il y a peut être du code qui t'intéresse
Code:
Sub SauvegardeClients()'pour AR19
    Dim a, b(), c As Long, i As Long, j As Long, k As Long, l As Long

    With Worksheets("Tableau")
        a = .Range("A2:AF3")
        For i = 1 To UBound(a, 1)
            For j = 3 To UBound(a, 2)
                If a(i, j) <> "" Then c = c + 1
            Next j
            If c > 0 Then
                l = l + 1
                ReDim Preserve b(1 To 2, 1 To c + 2)
                b(l, 1) = a(i, 1)
                b(l, 2) = a(i, 2)
                k = 2
                For j = 3 To UBound(a, 2)
                    If a(i, j) <> "" Then k = k + 1: b(1, k) = a(i, j)
                Next j
            End If
            c = 0
        Next i

    End With
 

Fichiers joints

zic04

XLDnaute Nouveau
J'ai intégré le code mais il enregistre toujours les colonnes vide, j'ai fait un modèle pour l'impression. pas besoin forcèment d une page impression juste un bouton qui imprime sans ligne avec une macro qui intégre la colonne produit a dupliqué a chaque client
 

Fichiers joints

Bebere

XLDnaute Barbatruc
bonjour
Zic voilà un autre code ,simplifié et corrigé
dans le dernier fichier il manquait la partie salvar(à la fin)
attention si tu cliques 2 fois le bouton,faut il faire quelque chose pour éviter de sauver 2 fois
Code:
Sub Backup_Clients()
    Dim a, b(), c As Long, i As Long, j As Long, k As Long

    With Worksheets("Canasta_")
        a = .Range("A2:AF3")
            For j = 3 To UBound(a, 2)
                If a(1, j) <> "" Then c = c + 1
            Next j
            If c > 0 Then
                ReDim Preserve b(1 To 2, 1 To c + 2)
                b(1, 1) = a(1, 1): b(1, 2) = a(1, 2)
                b(2, 1) = a(2, 2): b(2, 2) = a(2, 2)
                k = 2
                For j = 3 To UBound(a, 2)
                    If a(1, j) <> "" Then k = k + 1: b(1, k) = a(1, j): b(2, k) = a(2, j)
                Next j
            End If

    End With

    With Worksheets("Salvar")
            i = .Range("B65536").End(xlUp).Row + 1
        .Range("B" & i).Resize(UBound(b, 1), UBound(b, 2)) = b
    End With

End Sub
 

zic04

XLDnaute Nouveau
Merci la formule fonctionne, il manque juste la somme des lignes (A3) au lieu de copier la formule il indique "Precio"
A3 Canasta_.

Pour le problème de recopier 2 fois peux etre avec la date ? si elle existe deja ne pas copier ?

suite :
voila j'ai travailler sur l'impression, pour les étiquettes si tu as une idée pour ne pas affiché un produit si l'autre le prend.
Comme dans l'ex en pièce joint

Merci
 

Fichiers joints

Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas