Transfert de données coché vers autres feuilles

Bonjour chers ami, je suis nul en programmation et je souhaite avoir le code visuel basic qui permet de transférer automatiquement des données coché d'un tableau d'une feuille intitulé "BASE DE DONNÉES" vers une autre intitulé "DQE". la condition est que ds la feuille 1 il faudrait que la cas à coché soit activé,qu'il n'y ait pas de ligne vide lors des transferts de données

Voici joint mon projet et le code que j'essaye de bidouiller en fonction d'un exemplaire que joint aussi

21cocherbarfly.zip (9.41 Ko)
22dqe-bat-v1-1.xlsm (665.28 Ko)
14internet-code.txt (830.00 Octets)

Bonjour Tinolacoro,

Un essai:

Option Explicit

Sub testtransfert()

Dim i As Integer, dl As Integer                                  'déclaration des variables

  dl = Sheets("DQE").Range("B" & Rows.Count).End(xlUp).Row       'définition de la variable

 With Sheets("BASE DE DONNEES")                                  'à partir de la feuille BASE DE DONNEES

  For i = 2 To 1000                                              'boucle des lignes 2 à 1000 (à adapter)

If .Range("A" & i) = "ý" Then                                    'si la colonne A contient une croix
   .Range("B" & i & ":G" & i).Copy Sheets("DQE").Range("B" & dl) 'on copie de B à G sur la feuille DQE
   dl = dl + 1
End If

  Next i

 End With

End Sub

Cordialement,

Bonjour le fil, bonjour le forum,

J'imagine qu'avant de transférer les données il faudra effacer d'éventuelles anciennes données de l'onglet DQE et, qu'une fois le transfert effectué, il faudra décocher toutes les cases de la base de donnée. Non ?

Bonjour ThauThème,

il faudra effacer d'éventuelles anciennes données de l'onglet DQE et, qu'une fois le transfert effectué, il faudra décocher toutes les cases de la base de donnée. Non ?

Effectivement, je m'étais fait la même réflexion,

Une autre version....

Cela mérite d'être amélioré...ça mouline un peu...

Il me tarde de voir ton code...je progresse tout doucement...mais j'ai encore du boulot,

Amicalement,

bonjour

avec Excel, depuis 10 ans, on ne transfère plus avec VBA, mais avec le menu Données, Obtenir

plus souple, plus rapide, plus fiable.

un vrai bonheur

il faut juste explorer les menus d'Excel

il y a des pépites

bonne journée

amitiés à tous

Bonjour le fil, bonjour le forum,

@Xorsankukai

À vrai dire je n'ai pas proposé de code pour trois raisons :

1. Pratiquement identique au tien donc aucun intérêt.

2. J'attends des réponse de Tinolacoro

3. Son fichier contient des références circulaires (ça n'a aucun rapport mais ça m'énerve...)

Bonjour le fil, bonjour le forum,

avec Excel, depuis 10 ans, on ne transfère plus avec VBA, mais avec le menu Données, Obtenir

plus souple, plus rapide, plus fiable.

un vrai bonheur

@Jmd

C'est incontestable !... Mais depuis 10 ans je m'éclate à faire ça et maintenant j'ai une raison de plus à le faire : je sais que ça t'énerve... Hé ! Ne le prend pas mal, c'est juste pour la foune !... (oui à Sète on dit foune pour fun, c'est fou et c'est plus fun...)

Re,

@ThauThème: merci pour ta réponse, mais peux-tu me dire pourquoi mon code mouline ? c'est au niveau de ma macro d'effacement ?

@jmd: merci pour ton conseil, mais je ne peux malheureusement pas l'exploiter, comment procèdes-tu, stp ?

capture

https://www.lecompagnon.info/excel2007/donnees.htm

Amicalement,

Bonjour xorsankukai, merci pour ta réponse, je vais essayer ta proposition et te faire un retour. En réponse à ta question de savoir si les cases doivent êtres décoché s au niveau de base de données, je pense que ce n'est pas nécessaire qu'il soit décocher après le transfert apparution automatique sur la feuille DQE.

Pour les références circulaires dont Tauthem as parlé je vais après me concentré sur le projet ou mes formules pour trouver l'erreur. Néanmoins si tu peux m'aider alors voici le code de déverrouillage des cellules 0080

Re,

Il me tarde de voir ton code...je progresse tout doucement...mais j'ai encore du boulot,

En fait je m'adressais à Thauthème, j'attendais sa version car j'apprends beaucoup en suivant ses fils....ses codes sont toujours bien commentés ce qui facilite grandement la compréhension,

Je ne peux pas t'aider d'avantage, bonne continuation,

Bonjour le fil, bonjour le forum,

avec Excel, depuis 10 ans, on ne transfère plus avec VBA, mais avec le menu Données, Obtenir

plus souple, plus rapide, plus fiable.

un vrai bonheur

@Jmd

C'est incontestable !... Mais depuis 10 ans je m'éclate à faire ça et maintenant j'ai une raison de plus à le faire : je sais que ça t'énerve... Hé ! Ne le prend pas mal, c'est juste pour la foune !... (oui à Sète on dit foune pour fun, c'est fou et c'est plus fun...)

salut ThauThème

rien ne m'énerve

il vaut mieux un bon code VBA qu'une requête Power Query pourrie

tu es un excellent VBAiste, donc ton VBA est durable (tu es en permanence là pour corriger les bugs et les nouvelles incompatibilités)

mais pour un programmeur moyen, il vaut 100 fois mieux PQuery : plus facile et plus fiable.

mon conseil : en tant qu'expert, n'aide pas un débutant à piloter une formule 1. Apprends-lui la Mégane. Tu lui rendras un bien meilleur service.

A lui, à son entreprise, à ton pays.

amitiés excelliennes

Y'a t-il une possibilité pour que le transfert soit automatique, c'est à dire à chaque modification de la feuilles Base de données, la mise à soit automatique au niveau de la feuille DQE, sans avoir de cliquer sur le bouton transfert

Mise à automatique de la feuille DQE par rapport aux cases cochés dans la feuille base de données et inutile de décoché les case coché par l'utilisateur après le transfert automatique des données

Y'a t-il une possibilité pour que le transfert soit automatique, c'est à dire à chaque modification de la feuilles Base de données, la mise à soit automatique au niveau de la feuille DQE, sans avoir de cliquer sur le bouton transfert

Mise à automatique de la feuille DQE par rapport aux cases cochés dans la feuille base de données et inutile de décoché les case coché par l'utilisateur après le transfert automatique des données

Bonjour le fil, bonjour le forum,

salut ThauThème

rien ne m'énerve

il vaut mieux un bon code VBA qu'une requête Power Query pourrie

tu es un excellent VBAiste, donc ton VBA est durable (tu es en permanence là pour corriger les bugs et les nouvelles incompatibilités)

mais pour un programmeur moyen, il vaut 100 fois mieux PQuery : plus facile et plus fiable.

mon conseil : en tant qu'expert, n'aide pas un débutant à piloter une formule 1. Apprends-lui la Mégane. Tu lui rendras un bien meilleur service.

A lui, à son entreprise, à ton pays.

amitiés excelliennes

Encore une fois, imparable et incontestable ! Mais en fait, et je pense que c'est comme ça pour la plupart d'entre nous si on veut bien se l'avouer, on n'aide personne, on s'éclate soit même. C'est pour cela que...

Amitiés et grand respect.

Bonjour cher ami, j'ai mon classeur Excel qui comporte trois feuilles (paramètre 1 et paramètre 2, BASE DE DONNÉES ) dont je souhaite mettre à zéro les cellules à renseigner à partir d'un bouton que je vais affecté au macro . Ces cellules sont déverrouillés. Je compte testé le code suivant, quelqu'un peu m'aider.

Sub TestVerrouillage()

Dim Cel As Range

With Sheets("paramètre 1")

For Each Cel In Range("A1:Z1000") 'plage à adapter

If Cel.Locked = False Then Cel.ClearContents

With Sheets("paramètre 2")

For Each Cel In Range("A1:Z1000") 'plage à adapter

If Cel.Locked = False Then Cel.ClearContents

With Sheets("BASE DE DONNÉES ")

For Each Cel In Range("A1:Z1000") 'plage à adapter

If Cel.Locked = False Then Cel.ClearContents

Next Cel

End Sub

Bonjour le fil, bonjour le forum,

Peut-être comme ça :

Sub TestVerrouillage()
Dim OS As Variant
Dim Cel As Range

Application.ScreenUpdating = False
OS = Array("paramètre 1", "paramètre 2", "BASE DE DONNÉES ")
For I = LBound(OS) To UBound(OS)
    With Worksheets(OS(I))
        For Each Cel In .Range("A1:Z1000")
            If Cel.Locked = False Then Cel.ClearContents
        Next Cel
    End With
Next I
Application.ScreenUpdating = True
End Sub

Bonjour Tautheme, lorsque j'applique le code il y'a problème à ce niveau

With Worksheets(OS(I)) <l'indice n'appartient pas à la sélection >

Re,

J'ai remarqué que dans ton code l'onglet "BASE DE DONNÉES " avait un espace à la fin. Je l'ai laissé dans mon code. Vérifie. Si c'est ça, corrige. Soit le nom de l'onglet en ajoutant un espace à la fin, soit le code en supprimant un espace à la fin : "BASE DE DONNÉES"...

En fait pour éviter les erreurs, il faut que le nom de chaque onglet soit strictement identique avec le nom utilisé dans le code.

Rechercher des sujets similaires à "transfert donnees coche feuilles"