Transfert de données coché vers autres feuilles

Ok, je vais essayer tes suggestions

Bonjour Tinolacoro,

je t'ai répondu ici :

https://forum.excel-pratique.com/viewtopic.php?p=689532#p689532

et là aussi :

https://forum.excel-pratique.com/viewtopic.php?p=689540#p689540

c'est mieux qu'tu évites d'oublier tes anciens sujets !

dhany

Merci infiniment, ça marche très bien après application de tes conseils.

merci pour ton retour ! bonne continuation !

dhany

Bonjour xorsankukai, merci pour le code <copie de données coché >,ça mède un peu. En effet ça refuse souvent de copier certains lignes dont je coche. Peux-tu assayé de revoir un peu

Salut sorxankukai

S'il te plaît aide moi pour ce code que tu as élaboré pour moi. Cette demande d'aide est valable pour ceux qui si connaissent en VBA.

Le code consiste à copier les données une feuille à une autres sans tenir compte des formules juste les valeurs et la mise en forme. Mais celle élaborer par sorxankukai, copie les formules.

Voici le code à modifier pour prendre en compte les valeurs et la mise en forme.

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

Salut Dhany

S'il te plaît aide moi pour ce code qui consiste à copier les données une feuille à une autres sans tenir compte des formules juste les valeurs et la mise en forme. Mais celle-ci copie également les formules.

Voici le code à modifier pour prendre en compte uniquement que les valeurs et la mise en forme.

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

Bonjour Tinolacoro, le fil,

Essaies ainsi:

Option Explicit

Sub testtransfert()

Call effaceDQE

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

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

  Application.ScreenUpdating = False

 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                               'on copie de B à G
   Sheets("DQE").Range("B" & dl).PasteSpecial Paste:=xlPasteValues  'on colle les valeurs sur la feuille DQE
    dl = dl + 1
   .Range("A" & i) = "o"                                         'on décoche
End If

  Next i

 End With

 MsgBox "Transfert effectué"

End Sub

Mais il y a surement moyen d'optimiser ce code,

Si Dhany passe dans le coin ( )....

Cordialement,

Bonjour à tous,

Salut xorsankukai

Puisque tu parlais de petites améliorations ..

Option Explicit

Sub TestTransfert2()
'déclaration des variables
Dim i As Integer, dl As Integer, j As Integer
Call effaceDQE

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
    'définition de la variable
  dl = Sheets("DQE").Range("B" & Rows.Count).End(xlUp).Row + 1

    With Sheets("BASE DE DONNEES")
       ' boucle des lignes 2 à 1000 (à adapter)
        For i = 2 To 1000
          If .Range("A" & i) = "X" Then
              'on copie les Valeurs de B à G vers Sheets("DQE")
             Sheets("DQE").Range("B" & dl).Value = .Range("B" & i & ":G" & i).Value
             dl = dl + 1
             .Range("A" & i) = "o"
          End If
        Next i
    End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Transfert effectué ..."

End Sub
Rechercher des sujets similaires à "transfert donnees coche feuilles"