Si "X" alors copier / coller dans une autre feuille
Bonjour,
dans le cadre d'un stage en entreprise je dois réaliser un programme en VBA.
Néanmoins je bloque, actuellement je dois faire en sorte que si le mot "Écrans" et détecter il soit copié et coller
dans une autre page ainsi que son numéro de série (tous les numéros de série sont numéroté d'A7 a À750),
le programme doit pouvoir se loop jusqu'à qu'une case vierge soit détecter, sériez-vous m'aider .
pour l'instant, mon code ressemble a ça :
Sub Test2()
' Par exemple je pars de la cellule A2
Dim PC_type
Range("C7").Select
Do Until IsEmpty(ActiveCell)
PC_type = ActiveCell.Value 'récupère la valeur de la cellule dans une variable que tu appelles comme tu veux
' si c'est "ECRAN", sélectionner la cellule de la feuille écran et mettre PC_SN dans la cellule, etc
ActiveCell.Offset(1, 0).Select 'passe à la ligne suivante
Loop
End SubBonjoujr et bienvenue sur le forum
Tu devrais joindre ton fichier complet...
Bye !
J'ai ça :
Option Explicit
Sub Macro1()
Dim cell As Range
Dim sValeur As String
For Each cell In Range("C2:C" & Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row)
sValeur = cell.Value
Sheets(sValeur).Range("A" & (Sheets(sValeur).Cells(Sheets(sValeur).Rows.Count, 1).End(xlUp).Row) + 1).Value = cell.Value
Sheets(sValeur).Range("A" & (Sheets(sValeur).Cells(Sheets(sValeur).Rows.Count, 1).End(xlUp).Row)).Offset(0, 1).Value = cell.Offset(0, 1).Value
Next
End Sub
Sub Recopie()
Dim Cellule As Range
Dim TypeMATERIEL As String
Dim Compteur_PC, Compteur_Ecran, NbLigne As Integer
Dim Debut As Integer
Dim SN As String
'Sélectionner la bonne feuille
Sheets("SCAN LAB").Select
' Boucle sur chaque cellule de la colonne contenant les types de matériel (colonne C)
Compteur_PC = 2 'ce compteur comptera les lignes copiées sur la feuille des PC
Compteur_Ecran = 2 'ce compteur comptera les lignes copiées sur la feuille des liaisons Ecran
Debut = 7 'permet de modifier rapidement ton code le jour où cela ne commence plus à 7
NbLigne = Debut 'cette variable permet de commencer au Debut puis de mémoriser la ligne en cours de recopie
For Each Cellule In Range("C" & Debut & ":C" & Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row)
TypeMATERIEL = Cellule.Value
SN = Range("A" & NbLigne).Value
If TypeMATERIEL = "PC" Then
Sheets("PC").Range("A" & Compteur_PC).Value = SN
'Trouver le code similaire pour récupérer de la même façon le numéro de la salle
Compteur_PC = Compteur_PC + 1
Else
'Sinon c'est un écran, trouver le code similaire qui recopie sur la bonne feuille au bon endroit (celle des écrans)
Compteur_Ecran = Compteur_Ecran + 1
End If
NbLigne = NbLigne + 1
Next
End SubUptade, avec l'aide de mon tuteur on a fais ça.
Par contre je vois pas comment continuer
Sub Recopie()
Dim Cellule As Range
Dim TypeMATERIEL As String
Dim Compteur_PC, Compteur_Ecran, NbLigne As Integer
Dim Debut As Integer
Dim SN, SALLE As String
'Sélectionner la bonne feuille
Sheets("SCAN LAB").Select
' Boucle sur chaque cellule de la colonne contenant les types de matériel (colonne C)
Compteur_PC = 2 'ce compteur comptera les lignes copiées sur la feuille des PC
Compteur_SALLE = 2 'ce compteur comptera lesl ignes copiées sur les feulles des salle
Compteur_Ecran = 2 'ce compteur comptera les lignes copiées sur la feuille des liaisons Ecran
Debut = 7 'permet de modifier rapidement ton code le jour où cela ne commence plus à 7
NbLigne = Debut 'cette variable permet de commencer au Debut puis de mémoriser la ligne en cours de recopie
For Each Cellule In Range("C" & Debut & ":C" & Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row)
TypeMATERIEL = Cellule.Value
SN = Range("A" & NbLigne).Value
SALLE = Range("B" & NbLigne).Value
If TypeMATERIEL = "PC" Then
Sheets("PC").Range("A" & Compteur_PC).Value = SN
Sheets("PC").Range("B" & Compteur_PC).Value = SALLE
Compteur_PC = Compteur_PC + 1
Else
Sheets("ECRAN").Range("B" & Compteur_Ecran).Value = SN
'Sinon c'est un écran, trouver le code similaire qui recopie sur la bonne feuille au bon endroit (celle des écrans)
Compteur_Ecran = Compteur_Ecran + 1
End If
NbLigne = NbLigne + 1
Next
End SubRe-bonjour, étant toujours en stage de seconde, je ne comprend pas vraiment le code, mon tuteur l'a beaucoup améliorer mais je n'y comprend plus rien quelqu'un pourrais m'expliquer quel formule fait quoi ?