IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

if cellule vide goto [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 23
    Par défaut if cellule vide goto
    Bonjour l'équipe,

    j'ai essayé d'écrire un code mais ile ne marche pas je suis aujourd'hui là pour sollicité votre aide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    If range("AR4" & "AS4").value = "" GoTo line1 
     
    'gjn
    Range("AU4").Value = Range("AR4").Value - Range("D4").Value
     
    'vbn
    Range("AV4").Value = Range("AS4").Value - Range("E4").Value
     
     
    For U = 9 To 40
     
    Cells(U, 9) = Cells(U, 9) + Range("AU4").Value
    Cells(U, 13) = Cells(U, 13) + Range("AU4").Value
    Cells(U, 17) = Cells(U, 17) + Range("AU4").Value
    Cells(U, 10) = Cells(U, 10) + Range("AV4").Value
    Cells(U, 14) = Cells(U, 14) + Range("AV4").Value
    Cells(U, 18) = Cells(U, 18) + Range("AV4").Value
     
    Next U
    Range("D4").Value = Range("AR4").Value
    Range("E4").Value = Range("AS4").Value
     
    'REMA
    For h = 9 To 40
    If Cells(h, 24) = "N/A" Then
    Else
    Cells(h, 24) = Cells(h, 24) - Feuil5.Range("AU4").Value
    End If
    Next h
    'REM
    For E = 9 To 40
    If Cells(E, 24) = "N/A" Then
    Else
    Cells(E, 24) = Cells(E, 24) - Feuil5.Range("AV4").Value
    End If
    Next E
     
    ' PRIX
    For t = 9 To 40
    Cells(t, 44) = Cells(t, 10)
    Next t
     
     
    Range("AU4").Value = ""
    Range("AV4").Value = ""
    Range("AR4").Value = ""
    Range("AS4").Value = ""
     
    line1 : 
     
     
    'WFG
     
    Feuil14.Range("O2:U2").ClearContents
    Feuil5.Range("G4:Z4").ClearContents
     
    Dim Compid As Range
     
    Set Compid = Feuil14.Range("A:A").Find(what:=Range("B4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Feuil14.Range("O2").Value = Compid.Offset(, 1).Value
    Feuil14.Range("P2").Value = Compid.Offset(, 2).Value
    Feuil14.Range("Q2").Value = Compid.Offset(, 3).Value
    Feuil14.Range("R2").Value = Compid.Offset(, 10).Value
    Feuil14.Range("S2").Value = Compid.Offset(, 11).Value
    Feuil14.Range("T2").Value = Compid.Offset(, 12).Value
    Feuil14.Range("U2").Value = Compid.Offset(, 9).Value
     
     
    Feuil5.Range("G4").Value = Feuil14.Range("O2")
    Feuil5.Range("H4").Value = Feuil14.Range("U2")
     
    'LES 
     
    Feuil14.Range("N2:N15").ClearContents
    Feuil5.Range("Z9:Z40").AdvancedFilter xlFilterCopy, CopyToRange:=Feuil14.Range("N2:N15"), Unique:=True
    Feuil5.Range("I4") = Feuil14.Range("N2").Value
    Feuil5.Range("K4") = Feuil14.Range("N3").Value
    Feuil5.Range("M4") = Feuil14.Range("N4").Value
    Feuil5.Range("O4") = Feuil14.Range("N5").Value
    Feuil5.Range("Q4") = Feuil14.Range("N6").Value
    Feuil5.Range("S4") = Feuil14.Range("N7").Value
    Feuil5.Range("U4") = Feuil14.Range("N8").Value
    Feuil5.Range("W4") = Feuil14.Range("N9").Value
    Feuil5.Range("Y4") = Feuil14.Range("N10").Value
     
    'Remplacer l
     
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("I4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("J4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("K4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("L4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("M4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("N4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("O4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("P4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("Q4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("R4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("S4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("T4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("U4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("V4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("W4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("X4").Value = Compid.Offset(, 8).Value
    Set Compid = Feuil14.Range("B:B").Find(what:=Range("Y4").Value, LookIn:=xlValues, lookat:=xlWhole)
    Range("Z4").Value = Compid.Offset(, 8).Value
    End Sub
    ici ce qui marche pas c'est : If range("AR4" & "AS4").value = "" GoTo line1.
    merci d'avance j'espère que j'étais clair

  2. #2
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonjour,

    il n'y a pas d'espace entre GO et TO
    Il faut écrire

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour compléter la réponse de Curt, que je salue au passage, l'étiquette de renvoi, votre exemple Line1), doit avoir évidemment le même nom (voir la ligne 77 de votre code publié où vous écrivez Line 1) ne peut avoir de caractères espacé (l'underscore est autorisé).

    Petite remarque : l'instruction Goto devrait être bannie de toute programmation sérieuse. Elle est assimilée à une programmation spaghetti
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 23
    Par défaut
    Bonjour,

    J'ai écris GoTo line 1 mais ça ne marche toujours pas en PJ le message erreur d'exécution '1004'
    Nom : Capture.PNG
Affichages : 195
Taille : 10,5 Ko

  5. #5
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    En utilisant ta méthodologie tu dois corriger ta syntaxe


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Range("AR4") = "" And Range("AS4") = "" Then GoTo line1
     
    'ton code ici
     
    line1:
    'ton code ici
    Je n'ai pas détaillé le reste du code mais j'ai vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(h, 24) = "N/A" Then
    Attention si la valeur est effectivement "N/A" alors OK par contre si la valeur est "#N/A" (avec le #) il s'agit d'un type erreur Excel. Ce ne sera pas traité par ton If. Dans ce cas utilises IsError().

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 23
    Par défaut
    J'ai corrigé le syntaxe mais ça ne marche toujours pas

  7. #7
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Comment ça ça ne marche toujours pas ?

    Avec le code fourni Excel se rend à line1: si AR4 ET AS4 sont "".

    Voici un fichier exemple.
    Complète ou non les cellule AR4 et AS4 et clique sur le bouton. Tu verras que si les 2 cellules sont "" alors tu n'auras pas le message indiquant qu'au moins 1 des cellules n'est pas "". Ce qui voudra dire que le code à bien été à line1:

    Fais du pas à pas.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tester cellule vide excel
    Par maxos75 dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2005, 17h02
  2. Afficher les cellules vides...
    Par Invité dans le forum ASP
    Réponses: 1
    Dernier message: 31/08/2005, 17h32
  3. Excel - Cellule vide en effectuant la somme
    Par spopo dans le forum Excel
    Réponses: 14
    Dernier message: 31/08/2005, 16h05
  4. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo