Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro Excel condition IF

1 réponse
Avatar
Oce26
Bonjour,
Il y a t'il un pro d'Excel qui pourrait me rendre service ? Voila je dois effectuée des macros permettant de transferer des données d'une feuille à l'autre.. J'ai divers données sur tel feuille dans lequel je selectionne les informations dont j'ai besoin parmi toutees, par le biais d'une colonne, quand j'insére "e;X"e; dans A9 par exemple la macro doit donc inserer la ligne A si uniquemment présence de "e;X"e; dans la colonne 9 mais si cellule "e;vide"e; dans une des cellules de la colonne 9 ne pas transferer la ligne dans la feuille Excel. Il me semble que je dois faire inserer dans cette macro la fonction "e;IF"e; ? Je ne m'y connais pas du tout en Macro avec le langage VBA. SI quelqu'un peut m'aider se serait vraiment cool! merci

1 réponse

Avatar
MichD
Bonjour,
Tu ouvres la fenêtre de l'éditeur de code VBA, Raccourci clavier :
Alt + F11
Et tu copies ceci dans l'un des modules.
Prends le temps de lire la macro, tu devras adapter 2 ou 3 trucs...
'---------------------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range, FeuilleDépart As String
Dim FeuilleArrivée As String, Critère As String
Dim DerLig As Long, DerCol As Long, LaLigne As Long
'Adapte le nom de l'onglet feuille où sont les données
FeuilleDépart = "Feuil1"
'Adapte le nom de l'onglet où doivent être copiées les données
FeuilleArrivée = "Feuil2"
'Critère : place le critère entre guillemet
'dans mon exemple seules les lignes dont la colonne A a un X seront
'copiées.
Critère = "x"
'Si tu veux copier les lignes dont la colonne A est totalement,
'le critère est : Critère = "="
'Nom de l'onglet feuille à adapter
With Worksheets(FeuilleDépart)
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
With Worksheets(FeuilleArrivée)
LaLigne = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set Rg1 = .Range("A" & LaLigne + 1)
End With
On Error Resume Next
With Rg
.AutoFilter field:=1, Criteria1:=Critère
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible). _
Copy Rg1
.AutoFilter
End With
End Sub
'---------------------------------------------
Le 14/06/16 à 04:27, Oce26 a écrit :
Bonjour,
Il y a t'il un pro d'Excel qui pourrait me rendre service ? Voila je dois
effectuée des macros permettant de transferer des données d'une feuille à
l'autre.. J'ai divers données sur tel feuille dans lequel je selectionne les
informations dont j'ai besoin parmi toutees, par le biais d'une colonne, quand
j'insére "e;X"e; dans A9 par exemple la macro doit donc inserer la ligne A si
uniquemment présence de "e;X"e; dans la colonne 9 mais si cellule "e;vide"e;
dans une des cellules de la colonne 9 ne pas transferer la ligne dans la feuille
Excel. Il me semble que je dois faire inserer dans cette macro la fonction
"e;IF"e; ? Je ne m'y connais pas du tout en Macro avec le langage VBA. SI
quelqu'un peut m'aider se serait vraiment cool! merci