Aide sur du VBA [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012
-
Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012
-
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é "matériel".
- J'ai un tableau qui s'étend de la ligne A13:U100
- Je souhaiterais que lorsque je mets une croix dans la case "A COMMANDER" située dans la colonne D:E (fusionnée) l'information de la colonne A s’intègre dans une nouvelle feuille nommée 'Matériel en commande' dans la colonne C:F (fusionnée)
Pour information le tableau s'étend de la colonne C15:AH.

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

7 réponses

Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012

C'est bon j'ai eu le code.

Je te remercie toi aussi pour ton aide

Je laisse le code au cas ou quelqu'un en aurais besoin

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
 


Je vais archiver ce petit message. Mais je te garde sous le coude au cas où Car je sans que tu est une star du codage et du billard .
Messages postés
31087
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
342
Bonjour,

déjà pense à bien choisir la rubrique dans laquelle tu poste ton message... ça concerne du VBA.. pas du VB6.

Ensuite, qu'as tu commencé à faire ?
As tu commencé à écrire du code ?

En attendant voici quelques pistes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' macro se déclenchant lorsque l'utiilsateur change de selection dans la feuille
' Target permet d'obtenir plusieurs infos.. telles que les coordonnées ou la valeur de la cellule
' selectionnée
Ligne = Target.Row
Colonne = Target.Column
Valeur = Target.Value
 'exemple : Si je suis dans la colonne 4 (D)
    If Colonne = 4 Then
        MsgBox (Cells(Ligne, "A").Value)
    End If
End Sub




Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012

Désolé pour mettre tromper d'endroit.

Ma macro ce compil pas comme je le veux. Et a vrai dire je ne suis pas une star du VBA.
Avec l'enregistreur je suis passé par ça mais ça ne marche pas génial voir pas du tout.

En plus j'aimerais quand cliquant sur le bouton ça se mette à jour



Sub Macro5()
'
' Macro5 Macro
'

'
Sheets("Materiel").Select
Range("A13:S97").Select
ActiveWindow.SmallScroll Down:=-63
Range("A14").Select
Selection.Copy
Sheets("Materiel en commande").Select
Range("C15").Select
ActiveSheet.Paste
Sheets("Materiel").Select
Range("A15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Materiel en commande").Select
Range("C16").Select
ActiveSheet.Paste
Sheets("Materiel").Select
Range("A18").Select
End Sub
Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012

En faite j'aimerais que si je mets une croix dans la case de mon premier tableau.

Sheets("Materiel").Select
Range("A13:S97").Select
en case C13 que ça vienne compléter le début de mon tableau en Sheets("Materiel en commande").Select en C15

En faite le tableau c15 me sert de synthétiser les cases cocher dans la feuille materiel dans la colonne C qui s'étend de C13 : C 97.


Dans le cas ou en C15 la case n'est pas coché j'aimerais que que ça passe en C16 et qu'elle vienne incrémenter la première case du tableau puis si on trouve le "X" en C 25 que ça compléte la seconde ligne.

Et que je puisse mettre à jour au cas ou je rajoute de nouvelle case

Vois tu mon problème ou est ce que je m'exprime pluton mal.

Je te remercie quand meme de te pencher sur mon problème
Messages postés
31087
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
342
Oula en effet, les explications ne sont pas ton fort

Bon.. d'après ce que je comprend :
Tu as un bouton.
Lorsque tu cliques dessus, il parcoure ta feuille "Matériel" et lorsqu'il croise un ligne sur laquelle la colonne D contient un "X" alors il met à jour le tableau contenu dans ta feuille
"Materiel en commande" ?

Pour faire tout ça, il faut que tu étudie :
- les Boucles (For/Next par exemple)
- Les tests (IF.THEN..ELSE..END IF )
- La recopie des valeurs (soit par du copier/coller comme tu as déjà pu essayer de le faire dans ton code, soit pas la récupération des valeurs de cellules (cf : ".value" )

Je te laisse un peu chercher



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
5
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2012

Je vais me mettre à pleurer

Je cherche mais la j'en peux plus et quand tu connais pas le vba enfin c'est comme tout ça devient chaud.

Voici l'URL ou le fichier est téléchargeable
[url=http://www.excel-downloads.com/forum/188768-vba-valeur-dun-tableau-dans-un-second-tableau.html].

Tout mon tableau est construit avec toutes les formules ...

A vrai dire si je n'ai pas la solution je vais abandonner car il m'a fait perdre trop de temps déjà.

La fatigue m'a fait trompé de forum

Merci quand même tu m'auras au moins répondu
Messages postés
31087
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
342
Sur l'autre site tu as bien commencé à traiter ta question.. ne t'arrêtes pas là !

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 a remplacer par la copie de la case correspondante
End If
Next
End Sub



Pour faire ton copier coller, tu peux : (dans ta boucle à la place de ta msgbox )
Selectionner la ligne (ou la cellule qui t'interesse) pour ensuite la copier/coller.
'exemple: 
Cells(i,"A").select
Selection.Copy
Sheets("Materiel en commande").Select 
Range("C16").Select ' a remplacer par la ligne ou coller 
ActiveSheet.Paste 
Sheets("Materiel").Select


Pour incrémenter automatiquement la N° de ligne ou coller tes données, tu peux rechercher une fonction qui te donne le N° de la dernière ligne d'une feuille.


NB : Plutot que d'utiliser du Copier/Coller, je passerai plutot par la récupération de la valeur (sauf si tu veux aussi la mise en forme..et non pas QUE la valeur de la cellule )

ce qui donnerait:
Sheets("Materiel en commande").range("C16").value=Sheets("Materiel").Cells(i,"A").value


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI