VBA - si "X " copie de la valeur dans un autre tableau

Bonjour,

Je fais appel à vos lumières car après multiple recherche je n'y arrive pas

Je souhaiterais réalisé une macro.

Dans une feuille nommé "Materiel".

  • J'ai un tableau qui s'étend de la ligne A13:A100
  • Je souhaiterais que lorsque je mets une croix dans la case "A COMMANDER" située dans la colonne C l'information de la colonne A s'intègre dans une nouvelle feuille nommée 'Matériel en commande' dans la colonne C (premiére ligne en C15

Je vous remercie par avance de l'aide que vous pourrez m'apporter

16document-copie.xlsm (80.61 Ko)

Bonjour greg63,

voici un début de code pour t'aider à démarrer,

il permet de repérer toutes les lignes dans la case "A COMMANDER" est cochée :

Sub test()
For I = 13 To 100
    Cell_traitee = Sheets("Materiel").Cells(I, "C")
    If Cell_traitee = "X" Then
        MsgBox "La ligne " & I & " doit être traitée", vbOKOnly 'Ligne à remplacer par ton code
    End If
Next
End Sub

Il faut maintenant que tu remplaces la boite de dialogue par ton code (copie de la ligne dans l'autre onglet par exemple)

Je te remercie pour ton d'aide et d'avoir regarder mon dossier ça me fait énormément plaisir

J’espère que je vais m'en sortir....

Je me bagarre avec ce dossier depuis plusieurs jours déjà.

essaie d'avancer, et si vraiment tu n'y arrives pas, réécris un message en donnant le code ou tu bloques,

on t'aidera !

   Range("C14").Select
    ActiveCell.FormulaR1C1 = "X"
    Range("A14").Select
    Selection.Copy
    Sheets("Materiel en commande").Select
    Range("C15").Select
    ActiveSheet.Paste
    Sheets("Materiel").Select
    Range("C15").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "X"
    Range("A15").Select
    Selection.Copy
    Sheets("Materiel en commande").Select
    Range("C16").Select
    ActiveSheet.Paste
    Sheets("Materiel").Select
    Range("C16").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("C17").Select
    ActiveCell.FormulaR1C1 = "X"
    Range("A17").Select
    Selection.Copy
    Sheets("Materiel en commande").Select
    Range("C17").Select
    ActiveSheet.Paste
End Sub

En gros ça me fait planter le truc. Je me dépatouille bien avec les TCD et les formules excel mais le vba je bloque vraiment.

J'ai déja compris ce que tu as fais . Mais c'est vrai qu'une fois que j'aurais ce code ça sera le top.

Je voudrais que cela se mette à jour.

Si il n'y a pas de "X" alors dans la seconde feuille il ne faut pas que ça saute de ligne mais que ça vienne a la suite dans la 2nd feuille

Voila j'ai rentré ce code.

Je ne sais pas si c'est bon et je sais ce qu'il me manque car je fais bien appelle a mes feuille dont le matériel en commande ou je veux coller

Sub test()
   Dim wsC As Worksheet
    Dim i As Integer
    Dim rg As Range
      Set wsC = ThisWorkbook.Sheets("Materiel en commande")

    Application.ScreenUpdating = False

    wsC.Range("C15:C100").ClearContents

       For i = 13 To 100
        Cell_traitee = Sheets("Materiel").Cells(i, "C")
        Cell_copy = Sheets("Materiel").Cells(i, "A")
        If Cell_traitee = "X" Then

            Set rg = wsC.Range("C60000").End(xlUp).Offset(1, 0)

    End If
    Next
End Sub
      

Bonjour

A essayer (filtre automatique)

Option Explicit

Sub Recopie()
Dim NbLig As Long
Dim WsC As Worksheet

  Application.ScreenUpdating = False
  Set WsC = ThisWorkbook.Sheets("Materiel en commande")
  WsC.Range("C15:C100").ClearContents

  NbLig = Range("A" & Rows.Count).End(xlUp).Row
  Range("A12:S" & NbLig).AutoFilter Field:=3, Criteria1:="X"
  If Application.Subtotal(103, Range("A12:A" & NbLig)) > 1 Then
    Range("A13:A" & NbLig).SpecialCells(xlCellTypeVisible).Copy WsC.Range("C15")
  End If
  Range("A12:S" & NbLig).AutoFilter
End Sub

MERCI MERCI MERCI MERCI

Ca marche !!!! vraiment super

En plus j'arrive à comprendre certaine partie ça me sera super utilie pour la suite et au cas ou je souhaite reproduire tout ça.

Je vous remercie enormement pour votre aide

Rechercher des sujets similaires à "vba copie valeur tableau"