Reporter la valeur d'une cellule sous condition

nak

XLDnaute Occasionnel
Bonjour à tous,

Voila je souhaite transformer un tableau avec différentes conditions. Voici la macro qui ne fonctionne pas :)
Sub Macro2()

Columns("A:A").Insert Shift:=xlToRight

Dim i As Integer

Application.ScreenUpdating = False

For i = 2000 To 1 Step -1
If UCase(Range("B" & i).Value) Like "Fonction" Then Cell.Offset(0, 1).Value = Cell.Offset(0, -1).Value
Next i

For i = 2000 To 1 Step -1
If UCase(Range("A" & i).Value) <> "" Then Cell.Value = Cell.Offset(-1, 0).Value
Next i

Application.ScreenUpdating = True


End Sub

Donc j'ajoute une colonne en A
Ensuite je fais une recherche dans la colonne B, si je trouve le texte "Fonction" je reporte la cellule de droite sur la cellule de gauche (par rapport à la colonne B).
Enfin je fais une recherche dans la colonne A, dès que je trouve un nombre je le reporte sur la cellule du dessous si elle est vide. Sur cette dernière fonction je pense qu'il est facile de planter excel en créant une boucle.

Bref j'ai les idées mais malgré mes efforts je ne trouve pas la solution.
Je joins un fichier exemple, en feuille 1 le tableau original, en feuille 2 le résultat que j'aimerais avoir.

Si quelqu'un peut m'aiguiller SVP

Merci
 

Pièces jointes

  • exemple.xls
    15.5 KB · Affichages: 127
  • exemple.xls
    15.5 KB · Affichages: 135
  • exemple.xls
    15.5 KB · Affichages: 136

ERIC S

XLDnaute Barbatruc
Re : Reporter la valeur d'une cellule sous condition

Bonjour

a essayer

Code:
Sub Macro2()
Columns("A:A").Insert Shift:=xlToRight
Dim i As Integer, derligne As Long
derligne = Range("B65536").End(xlUp).Row
Application.ScreenUpdating = False
For i = 1 To derligne
    If UCase(Range("B" & i).Value) Like "FONCTION" Then
        Cells(i, 1).Value = Cells(i, 3).Value
    Else
        If i > 1 Then Cells(i, 1).Value = Cells(i - 1, 1).Value
    End If
Next i
Application.ScreenUpdating = True

End Sub
 

JNP

XLDnaute Barbatruc
Re : Reporter la valeur d'une cellule sous condition

Bonjour le fil :),
Tu as du te tromper dans l'utilisation de la macro d'Eric, car chez moi, la feuille 1 devient copie conforme de la feuille 2 que tu souhaites :confused:...
Refait un essai, peut-être en vérifiant que c'est bien ta feuille 1 qui est activée, la feuille n'est pas spécifiée dans la macro.
Bonne soirée :cool:
 

JNP

XLDnaute Barbatruc
Re : Reporter la valeur d'une cellule sous condition

Re :),
La macro d'Eric avec l'obligation d'utiliser la feuille 1
Code:
Sub Macro2()
With Sheets("Feuil1")
.Columns("A:A").Insert Shift:=xlToRight
Dim i As Integer, derligne As Long
derligne = .Range("B65536").End(xlUp).Row
Application.ScreenUpdating = False
For i = 1 To derligne
    If UCase(.Range("B" & i).Value) Like "FONCTION" Then
        .Cells(i, 1).Value = .Cells(i, 3).Value
    Else
        If i > 1 Then .Cells(i, 1).Value = .Cells(i - 1, 1).Value
    End If
Next i
Application.ScreenUpdating = True
End With
End Sub
Bonne soirée :cool:
 

Discussions similaires

Réponses
9
Affichages
121
Réponses
0
Affichages
205
Réponses
1
Affichages
226

Statistiques des forums

Discussions
312 890
Messages
2 093 349
Membres
105 696
dernier inscrit
FrancisR