Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Passer des lignes de programme de Ref Absolu à Relative (synthaxe)

  • Initiateur de la discussion Initiateur de la discussion Yagan
  • Date de début Date de début

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 !

Y

Yagan

Guest
Bonjour,

J'ai fait la petite macro ci dessous et j'obtiens le resultat que sur la 1er cellule car j'ai mis les refs en Absolu (si je ne dit pas de connerie). J'ai mis une boucle "Do While" afin de tirer jusqu'à la fin de mon tableau mais pour que ça marche je pense que je dois passer en Ref Relative ?! en tout cas je n'y arrive pas, problème de synthaxe ?? donc si pouviez me dépanner ça serait sympa car j'y ai déjà passé trop de temps.

Code:
Range("N2").Select
       
    Do While IsEmpty(ActiveCell.Value) = False
    
    Select Case Range("O2")
             
        Case "DGALIAR"
        
            If Range("N2") = "GraviteC" And Range("P2") > Range("Paramètres!L40") Then
                       
            ActiveCell = "GraviteDG"
                
            End If
                        
        Case Is <> "DGALIAR"
        
            If Range("N2") = "GraviteC" And Range("P2") > Range("Paramètres!L41") Then
            
            ActiveCell = "GraviteG"
            
            End If
        
    End Select
                        
        ActiveCell.Offset(1, 0).Select
        
        Loop
 
Re : Passer des lignes de programme de Ref Absolu à Relative (synthaxe)

Bonjour Yagan 🙂,
A tester
Code:
Dim Cellule As Range
Set Cellule = Range("N2")
Do While Cellule <> ""
    If Cellule.Offset(0, 1) = "DGALIAR" And Cellule = "GraviteC" And Cellule.Offset(0, 1) > Sheets("Paramètres").Range("L40") Then
        Cellule = "GraviteDG"
    ElseIf Cellule.Offset(0, 1) <> "DGALIAR" And Cellule = "GraviteC" And Cellule.Offset(0, 1) > Sheets("Paramètres").Range("L40") Then
        Cellule = "GraviteG"
    End If
    Set Cellule = Cellule.Offset(1, 0)
Loop
Bonne journée 😎
 
Re : Passer des lignes de programme de Ref Absolu à Relative (synthaxe)

Merci JNP ça marche et c'est plus propre 🙂

Vraiment je suis toujours impressionné par la réactivité des membres de ce forum !!!
 
Re : Passer des lignes de programme de Ref Absolu à Relative (synthaxe)

Pas contre la macro est très longue à se dérouler sur 1500 lignes ! es qu'il y a un moyen de coder différement afin d'accélérer le déroulement ?
 
Re : Passer des lignes de programme de Ref Absolu à Relative (synthaxe)

Re 🙂,
Elle devrait déjà être beaucoup plus rapide que ta première, vu que tu passais par des Select alors que je ne travaille qu'en variables 🙄...
Par contre, s'il y a beaucoup de changement de valeurs dans les cellules, tu peux améliorer sensiblement la vitesse en désactivant l'affichage écran en mettant en début de macro
Code:
Application.ScreenUpdating = False
et en fin de macro
Code:
Application.ScreenUpdating = True
Bon courage 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
2
Affichages
2 K
bastienb
B
L
Réponses
7
Affichages
4 K
lilidxb
L
M
Réponses
9
Affichages
2 K
A
Réponses
4
Affichages
734
Aurel59
A
K
Réponses
0
Affichages
3 K
K
N
  • Question Question
Réponses
5
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…