Executer deux tache excel
Résolu
nonossov
Messages postés
638
Statut
Membre
-
nonossov Messages postés 638 Statut Membre -
nonossov Messages postés 638 Statut Membre -
Bonjour mes amis,
J'ai besoin de votre expertise comment puis je executer deux tache excel a savoir: couper les cellule qui demarre par 0 et les coller dans la colonne "C" et les remplacer par Y. Exemple dans les colonnes suivantes:
A/B/C
0a
b
0c
d
le resultat:
A/B/C
y / /0a
b / /
y / /0c
d / /
j'ai couper coller les 0a . 0c dans la colonne C et les remplacer par y
Merci infiniment pour votre aide
J'ai besoin de votre expertise comment puis je executer deux tache excel a savoir: couper les cellule qui demarre par 0 et les coller dans la colonne "C" et les remplacer par Y. Exemple dans les colonnes suivantes:
A/B/C
0a
b
0c
d
le resultat:
A/B/C
y / /0a
b / /
y / /0c
d / /
j'ai couper coller les 0a . 0c dans la colonne C et les remplacer par y
Merci infiniment pour votre aide
Configuration: Windows / Firefox 52.0
2 réponses
-
Bonjour,
Sure que ce sont des lettres apres les "0" et la ou y a pas de "0" aussi???????????????????-
-
-
Suite:
Suite
Une facon de faire
Sub decoupe() With Worksheets("feuil1") derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A Set Plage = .Range("A1:A" & derlig) 'mise en memoire plage de cellules Nb = Application.CountIf(Plage, "0*") 'nombre de fois "0" et lettre If Nb > 0 Then For n = 1 To derlig 'boucle sur la colonne If nf > Nb Then Exit Sub 'nombe de fois +1 atteint sortie If Plage(n, 1) Like "0*" Then 'test cellule Plage(n, 3) = Plage(n, 1): Plage(n, 1) = "y" 'ecriture cellules End If nf = nf + 1 'increment pour test Next n End If End With Set Plage = Nothing End Sub -
-
-
-
Bonjour,
Est ce que vousn pouvez inserer
Oui.
Sub decoupe() Dim Plage As Range With Worksheets("feuil1") derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A Set Plage = .Range("A1:A" & derlig) 'mise en memoire plage de cellules Nb = Application.CountIf(Plage, "0*") 'nombre de fois "0" et lettre If Nb > 0 Then Memlig = 1 Do While Application.CountIf(Plage, "0*") > 0 'boucle sur la colonne lig = .Columns(1).Find("0*", .Cells(Memlig, 1), , xlWhole).Row Memlig = lig Ville = .Cells(lig, 1) Flg_Vide = False CR = Worksheets("Les variables").Columns(1).Find(Ville).Row If Worksheets("Les variables").Cells(CR, 2) = "" Then Flg_Vide = True Else Set CR = Worksheets("Les variables").Columns(1).Find(Ville).Row End If Nb = Application.CountIf(Plage, Ville) If Nb > 0 Then For d = 1 To Nb lig = .Columns(1).Find(Ville, .Cells(lig, 1), , xlWhole).Row If Not Flg_Vide Then .Cells(lig, 3) = .Cells(lig, 1): CR.Offset(, 1).Copy .Cells(lig, 1) Else .Cells(lig, 3) = .Cells(lig, 1): .Cells(lig, 1) = 401100 End If Next d End If Loop End If End With Set Plage = Nothing Set CR = Nothing End Sub-
Je ne ss pas pourquoi je recois un message d'erreur:
Merci d'essayer l'execution de la macro:
https://www.cjoint.com/c/HLtjnVHkVpH -
Re,
Ben, je regarde
Suite:
petit probleme avec definition de CR, corrigé:
Sub decoupe() Dim Plage As Range With Worksheets("feuil1") derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A Set Plage = .Range("A1:A" & derlig) 'mise en memoire plage de cellules Nb = Application.CountIf(Plage, "0*") 'nombre de fois "0" et lettre If Nb > 0 Then Memlig = 1 Do While Application.CountIf(Plage, "0*") > 0 'boucle sur la colonne lig = .Columns(1).Find("0*", .Cells(Memlig, 1), , xlWhole).Row Memlig = lig Ville = .Cells(lig, 1) Flg_Vide = False CR = Worksheets("Les variables").Columns(1).Find(Ville).Row If Worksheets("Les variables").Cells(CR, 2) = "" Then Flg_Vide = True End If Nb = Application.CountIf(Plage, Ville) If Nb > 0 Then For d = 1 To Nb lig = .Columns(1).Find(Ville, .Cells(lig, 1), , xlWhole).Row If Not Flg_Vide Then .Cells(lig, 3) = .Cells(lig, 1): Worksheets("Les variables").Cells(CR, 2).Copy .Cells(lig, 1) Else .Cells(lig, 3) = .Cells(lig, 1): .Cells(lig, 1) = 401100 End If Next d End If Loop End If End With Set Plage = Nothing Set CR = Nothing End Sub -
-
Re,
Tout a fait Thierry, vous ne l'avez pas dit que vous pouvez avoir des 0xxx qui ne figurent pas dans Les Variables!!
C'est a vous de definir le "cahier des charges"
Je modifie
Sub decoupe() Dim Plage As Range, CR As Range, LV As Long With Worksheets("feuil1") derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A Set Plage = .Range("A1:A" & derlig) 'mise en memoire plage de cellules Nb = Application.CountIf(Plage, "0*") 'nombre de fois "0" et lettre If Nb > 0 Then Memlig = 1 Do While Application.CountIf(Plage, "0*") > 0 'boucle sur la colonne lig = .Columns(1).Find("0*", .Cells(Memlig, 1), , xlWhole).Row Memlig = lig Ville = .Cells(lig, 1) Flg_Vide = False Set CV = Worksheets("Les variables").Columns(1).Find(Ville) If Not CV Is Nothing Then LV = CV.Row If Worksheets("Les variables").Cells(LV, 2) = "" Then Flg_Vide = True Nb = Application.CountIf(Plage, Ville) If Nb > 0 Then For d = 1 To Nb lig = .Columns(1).Find(Ville, .Cells(lig, 1), , xlWhole).Row If Not Flg_Vide Then .Cells(lig, 3) = .Cells(lig, 1): Worksheets("Les variables").Cells(LV, 2).Copy .Cells(lig, 1) Else .Cells(lig, 3) = .Cells(lig, 1): .Cells(lig, 1) = 401100 End If Next d End If Else .Cells(lig, 2) = Ville: .Cells(lig, 1) = "NOK" MsgBox "Attention: " & Ville & " n'est pas dans feuille Les Variables !!!!" End If Loop End If End With Set Plage = Nothing Set CR = Nothing End Sub -
-