Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

goldfinger13

XLDnaute Occasionnel
Bonjour à tous,
je remplis une base de données à partir d'un formulaire.
je recherche comment transformer ce select case en formule applicable à la dernière ligne non vide de la colonne X de ma base de données.
et ce pour éviter de boucler sur toute la colonne
Code:
Sub MISAJOUR()
 Dim I As Long
 Dim derlig%
Set Ws = Worksheets("BASE")
derlig = Ws.Range("A65535").End(xlUp).Row + 1
 For I = 2 To derlig
      Select Case Range("G" & I)
            Case Is = " PDC 1"
                Range("X" & I) = "CHANTIER 1"
            Case Is = "PDC 2"
                Range("X" & I) = "CHANTIER 2"
            Case Is = "PDC 3"
                Range("X" & I) = "CHANTIER 3"
      End Select
 Next I
End Sub
et je bloque sur la formule si quelqu'un pouvais éclairer ma lanterne se serait sympathique
merci d'avance pour votre aide.
 
Dernière édition:
Re : Select case

Bonjour,

Si j'ai bien compris, ceci peut-être :

VB:
Sub MISAJOUR()
 Dim I As Long
 Dim derlig%
Set Ws = Worksheets("BASE")
derlig = Ws.Range("A65535").End(xlUp).Row + 1

      Select Case Range("G" & I-1)
            Case Is = " PDC 1"
                Range("X" & I) = "CHANTIER 1"
            Case Is = "PDC 2"
                Range("X" & I) = "CHANTIER 2"
            Case Is = "PDC 3"
                Range("X" & I) = "CHANTIER 3"
      End Select

End Sub

A+
 
Re : Select case

Bonjour Golfinger13, Grand Chaman Excel,

Si j'ai bien compris, voici comment j'écrirais la macro :

Code:
Sub MISAJOUR()
Dim I As Long
Dim derlig%
Set Ws = Worksheets("Feuil1")
derlig = Ws.Range("A65535").End(xlUp).Row + 1
Range("X1").Copy
Range("X" & derlig).PasteSpecial (xlPasteFormulas)
Application.CutCopyMode = False
End Sub

Après avoir entré la formule suivante dans la cellule X1 :

Code:
="CHANTIER "&REMPLACER(G1;1;4;"")

Espérant avoir répondu.

Cordialement.
 
Dernière édition:
Re : Select case

merci de vos réponses mais ne serait il pas possible de se passer du select case avec un if elseif par exemple mon problème est la formulation
les lignes de code précédentes se présentent de cette façon/
Code:
    Ws.Cells(derlig, 22).FormulaR1C1 = "=SUMPRODUCT((DATED=RC[-21])*(CHANTIERAD=RC[-1])*CHARMENBAK)"

    Ws.Cells(derlig, 23).FormulaR1C1 = "=IF(RC[-2]=CHANT0510,((VLOOKUP(INDEX(DATECDT,MATCH(RC[-22],DATECDT,0)-1),'CALCUL DES TRAFICS'!C[-22]:C[-12],11,0))+(SUMPRODUCT((DATE=RC[-22])*(CHANTIER=RC[-2])*ARRIVJOUR))-(VLOOKUP(RC[-22],'CALCUL DES TRAFICS'!C[-22]:C[-12],11,0))),((VLOOKUP(INDEX(DATECDT,MATCH(RC[-22],DATECDT,0)-1),'CALCUL DES TRAFICS'!C[-22]:C[-11],12,0))+(SUMPRODUCT((DATE=RC[-22])*(CHANTIER=RC[-2])*ARRIVJOUR))-(VLOOKUP(RC[-22],'CALCUL DES TRAFICS'!C[-22]:C[-11],12,0)))"
   
   'Ws.Cells(derlig, 24).FormulaR1C1 = "=IF(RC[-17] = PDC1 Then_" <--------------- ICI

Le résultat devrait approcher ceci:
Code:
If Cellule G97= PDC1 then
cellule X97 = CHANT01
ELSEIF cellule G97 = PDC2 Then
cellule X97 = CHANT02
ELSEIF cellule G97 = PDC2 Then
cellule X97 = CHANT02
ELSEIF cellule G97 = PDC3 Then
cellule X97 = CHANT03
sachant que là je fais mes tests sur la ligne 97 .

à vous lire merci
 
Re : Select case

RE:

Je ne vois pas l'intérêt de remplacer un Select Case par des IF multiples, plus lourds à traiter et à comprendre. Si les n° des PDC correspondent aux n° des CHANT il me parait beaucoup plus simple de procéder comme je te l'ai proposé. A moins qu'une raison plus subtile ne m'échappe, auquel cas un fichier exemple et des explications complémentaires seraient souhaitables.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
627
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
526
Réponses
7
Affichages
333
Retour