Bonjour chers excelliens,
je me tourne vers vous après plusieurs heures à essayer de faire marcher mes macros:
Je voudrais alimenter le champ client (col AV) de mon classeur IM015DISFE de la manière suivante:
1. les données historiques existent (AQ) et je les prends sinon
2. je fais un vlookup à partir de la colE , dans un fichier "Suivi immob" feuill 1 de colD à AL et ramène la col35
3. Si le vlookup ramène N/A alors j'utilise des règles de gestion définies par un select case.
Pb: mon ISNA ne fonctionne pas et mon Vlookup non plus. Auriez-vous une idée pourquoi?
Ci-joint mon code:
Merci mille fois d'avance
Sub IM015_Client()
Dim i As Long
'le champ client (AV) s'obtient d'abord par une recherche du numéro d'immobilisation dans un tableau de référence. Si aucune donnée n'est trouvée alors application des exceptions
NbreLignes = Range("A65536").End(xlUp).Row
For i = 2 To NbreLignes
' le champ( AV)client s'alimente d'abord par les données historiques (AQ) sinon on alimente la colonne BZ (prise au hasard) par un vlookup sur une table (fichier SuiviImmFil .xls)
If Application.WorksheetFunction.IsNA(Range("AQ" & i)) = true Then
Range("BZ" & i).Value = "=VLOOKUP(""" & Range("E" & i).Value & """,'[" & SuiviImmFil & "]Feuil1'!D:AL,35,FALSE)"
Else
Range("AV" & i).Value = Range("AQ" & i).Value
End If
'Si les données ne sont pas trouvées dans le fichier de suivi alors appliquer les règles de gestion des exceptions pour alimenter la cellule AV: selon la valeur dde la cellule (AS)(cells(i,45) alimenter le champ AV(cell(i,48)
If Application.WorksheetFunction.IsNA(Range("BZ" & i))
=true Then
Select Case Cells(i, 45).Value
Case Is = "Projets métiers ELP"
Cells(i, 48).Value = "ELP"
Case Is = "Projets métiers LBP"
Cells(i, 48).Value = "LBP"
Case Is = "Transverse et support"
Cells(i, 48).Value = "N/A"
Case Is = "Ressources communes"
Cells(i, 48).Value = "N/A"
Case Is = "GAB - signalétique"
Cells(i, 48).Value = "LBP"
End Select
Else
Range("AV" & i).Value = Range("BZ" & i).Value
End If
Next i
'Suppression ensuite de la colonne BZ
'Columns("BZ:BZ").Select
'Application.CutCopyMode = False
'Selection.ClearContents
je me tourne vers vous après plusieurs heures à essayer de faire marcher mes macros:
Je voudrais alimenter le champ client (col AV) de mon classeur IM015DISFE de la manière suivante:
1. les données historiques existent (AQ) et je les prends sinon
2. je fais un vlookup à partir de la colE , dans un fichier "Suivi immob" feuill 1 de colD à AL et ramène la col35
3. Si le vlookup ramène N/A alors j'utilise des règles de gestion définies par un select case.
Pb: mon ISNA ne fonctionne pas et mon Vlookup non plus. Auriez-vous une idée pourquoi?
Ci-joint mon code:
Merci mille fois d'avance
Sub IM015_Client()
Dim i As Long
'le champ client (AV) s'obtient d'abord par une recherche du numéro d'immobilisation dans un tableau de référence. Si aucune donnée n'est trouvée alors application des exceptions
NbreLignes = Range("A65536").End(xlUp).Row
For i = 2 To NbreLignes
' le champ( AV)client s'alimente d'abord par les données historiques (AQ) sinon on alimente la colonne BZ (prise au hasard) par un vlookup sur une table (fichier SuiviImmFil .xls)
If Application.WorksheetFunction.IsNA(Range("AQ" & i)) = true Then
Range("BZ" & i).Value = "=VLOOKUP(""" & Range("E" & i).Value & """,'[" & SuiviImmFil & "]Feuil1'!D:AL,35,FALSE)"
Else
Range("AV" & i).Value = Range("AQ" & i).Value
End If
'Si les données ne sont pas trouvées dans le fichier de suivi alors appliquer les règles de gestion des exceptions pour alimenter la cellule AV: selon la valeur dde la cellule (AS)(cells(i,45) alimenter le champ AV(cell(i,48)
If Application.WorksheetFunction.IsNA(Range("BZ" & i))
=true Then
Select Case Cells(i, 45).Value
Case Is = "Projets métiers ELP"
Cells(i, 48).Value = "ELP"
Case Is = "Projets métiers LBP"
Cells(i, 48).Value = "LBP"
Case Is = "Transverse et support"
Cells(i, 48).Value = "N/A"
Case Is = "Ressources communes"
Cells(i, 48).Value = "N/A"
Case Is = "GAB - signalétique"
Cells(i, 48).Value = "LBP"
End Select
Else
Range("AV" & i).Value = Range("BZ" & i).Value
End If
Next i
'Suppression ensuite de la colonne BZ
'Columns("BZ:BZ").Select
'Application.CutCopyMode = False
'Selection.ClearContents