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 :

fonction si en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut fonction si en vba
    bonjour, je ne comprend pas pourquoi cela ne marche pas
    le choix ne fonctionne pas
    il me marque toujours la meme chose:
    =@IP de la CPU : etc....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Si la E7 < 0 alors signet "IpCpu"=vide sinon signet "IpCpu"=@IP de la CPU : + [E7] + Avec le Masque Réseau : + [O7]
    'With Sheets("Info CLIENT")
        'si "E7" est plus grand que 0
      If [E7] Is Null Then '> 0 Then
        'Alors le signet "IpCpu" prend la valeur =@IP de la CPU : + [E7] + Avec le Masque Réseau : + [O7]
        .Bookmarks("IpCpu").Range.Text = ("@IP de la CPU : ") & [E7] & (" Avec le Masque Réseau : ") & [O7]
        Else
        'Alors le signet "IpCpu" prend la valeur = vide
        .Bookmarks("IpCpu").Range.Text = (" 0 ")
        End If
      'End With
    Merci de l'aide que vous pourrez m'apporter.
    P.S : c'est le 1er post que je fais , donc si il y a des oublie ,je vous pries de m'en excuser.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par youki94 Voir le message
    bonjour, je ne comprend pas pourquoi cela ne marche pas
    le choix ne fonctionne pas
    il me marque toujours la meme chose:
    =@IP de la CPU : etc....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Si la E7 < 0 alors signet "IpCpu"=vide sinon signet "IpCpu"=@IP de la CPU : + [E7] + Avec le Masque Réseau : + [O7]
    'With Sheets("Info CLIENT")
        'si "E7" est plus grand que 0
      If [E7] Is Null Then '> 0 Then
        'Alors le signet "IpCpu" prend la valeur =@IP de la CPU : + [E7] + Avec le Masque Réseau : + [O7]
        .Bookmarks("IpCpu").Range.Text = ("@IP de la CPU : ") & [E7] & (" Avec le Masque Réseau : ") & [O7]
        Else
        'Alors le signet "IpCpu" prend la valeur = vide
        .Bookmarks("IpCpu").Range.Text = (" 0 ")
        End If
      'End With
    Salut bienvenu sur le forum
    J'ai entouré ton code des balises sinon c'est incompréhensible.
    Difficile de t'aider sans savoir ce que vaut [E7] mais mon petit doigt me dit qu'il est NULL.

    Et si tu montrais le reste de ton code pour savoir d'où vient ce E7 ?

    Merci d'utiliser les balises codes comme expliqué ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    Dans E7 j'ai :
    - rien
    -123.123.123.123
    ou une autre valeur du meme type en sachant que c'est du texte

    oups !!
    E7 est une cellule que je remplis

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par youki94 Voir le message
    oups !!
    E7 est une cellule que je remplis
    Alors essaie de tester autrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Range("E7"] = "" then

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    maintenant cela ne me met plus rien

    voila le code qui pose probleme

    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
    'Ouvrir Word en
    'Supposant un document Fiche.doc contenant les signets: "Nom"et "Cpu"
    Dim LaFicheTech As String
    Dim LeNom
    Dim ObjWord As Object
    On Error Resume Next
    LaFicheTech = ThisWorkbook.Path & "\Fiche.doc"
    Set ObjWord = CreateObject("Word.Application")
    ObjWord.Visible = True
    Set LeDocWord = ObjWord.documents.Open(LaFicheTech)
    LeNom = [A1]
    With LeDocWord
    'Le nom du signet dans le document word est ici "Nom"
    .Bookmarks("Nom").Range.Text = LeNom
    
    'cette parti ne fonctionne pas
    'Si la E7 < 0 alors signet "Cpu"=vide sinon signet "Cpu"=@IP de la CPU : + [E7]
    With Sheets("Info CLIENT")
        'si "E7" est plus grand que 0
      if [E7] Is Null Then '> 0 Then
        'Alors le signet "IpCpu" prend la valeur =la CPU : + [E7] 
        .Bookmarks("Cpu").Range.Text = ("la CPU : ") & [E7]    ' Else
        'Alors le signet "Cpu" prend la valeur = vide
        .Bookmarks("Cpu").Range.Text = ("")
        End If
     End With
      jusque la
    End With
    'Pour enregistrer le doc avec le nom=Fiche + (A1).doc
    Dim Chemin$, Client$, Fichier$
    Chemin = ActiveWorkbook.Path & "\" & Client
    Client = Range("A1")
    Fichier = "Fiche " & Client & ".rtf"
    LeDocWord.SaveAs Chemin & "\" & Fichier
    'Quitter Word
    ObjWord.Quit
    Set ObjWord = Nothing

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    RE,

    en gras ce qui ne peut pas marcher, selon moi.
    En Italique, la technique que tu devrais utiliser.

    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
    'Ouvrir Word en
    'Supposant un document Fiche.doc contenant les signets: "Nom"et "Cpu"
    Dim LaFicheTech As String
    Dim LeNom
    Dim ObjWord As Object
    On Error Resume Next
    LaFicheTech = ThisWorkbook.Path & "\Fiche.doc"
    Set ObjWord = CreateObject("Word.Application")
    ObjWord.Visible = True
    Set LeDocWord = ObjWord.documents.Open(LaFicheTech)
    LeNom = [A1]
    With LeDocWord
    'Le nom du signet dans le document word est ici "Nom"
    .Bookmarks("Nom").Range.Text = LeNom
    
    'cette parti ne fonctionne pas
    'Si la E7 < 0 alors signet "Cpu"=vide sinon signet "Cpu"=@IP de la CPU : + [E7]
    With Sheets("Info CLIENT")
        'si "E7" est plus grand que 0
      if [E7] Is Null Then '> 0 Then
        'Alors le signet "IpCpu" prend la valeur =la CPU : + [E7] 
        .Bookmarks("Cpu").Range.Text = ("la CPU : ") & [E7]    ' Else
        'Alors le signet "Cpu" prend la valeur = vide
        .Bookmarks("Cpu").Range.Text = ("")
        End If
     End With
      jusque la
    End With
    'Pour enregistrer le doc avec le nom=Fiche + (A1).doc
    Dim Chemin$, Client$, Fichier$
    Chemin = ActiveWorkbook.Path & "\" & Client
    Client = Range("A1")
    Fichier = "Fiche " & Client & ".rtf"
    LeDocWord.SaveAs Chemin & "\" & Fichier
    'Quitter Word
    ObjWord.Quit
    Set ObjWord = Nothing

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    Bon merci de l'aide ca fonctionne maintenant
    En gras ce que j'ai modifier selon les conseils

    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
    'Ouvrir Word avec le document Fiche.doc contenant les signets: "Nom"et "Cpu"
    Dim LaFicheTech As String
    Dim LeNom
    Dim Cputyp
    Dim ObjWord As Object
    On Error Resume Next
    LaFicheTech = ThisWorkbook.Path & "\Fiche.doc"
    Set ObjWord = CreateObject("Word.Application")
    ObjWord.Visible = True
    Set LeDocWord = ObjWord.documents.Open(LaFicheTech)
    LeNom = [A1]
    Cputyp = [E7]
    With LeDocWord
    'Modifie le signet "Nom" par la valeur de: LeNom = cellule A1
    .Bookmarks("Nom").Range.Text = LeNom
    'Si la E7=vide alors signet "Cpu"=vide sinon signet "Cpu"=la CPU : + [E7]
        'si "E7" est vide
      if Cputyp="" Then
        'Alors le signet "Cpu" prend la valeur =la CPU : + [E7] 
        .Bookmarks("Cpu").Range.Text = ("la CPU : ") & [E7]    
         Else
        'Alors le signet "Cpu" prend la valeur = vide
        .Bookmarks("Cpu").Range.Text = ("")
        End If
    End With
    'Pour enregistrer le doc avec le nom=Fiche + (A1).doc
    Dim Chemin$, Client$, Fichier$
    Chemin = ActiveWorkbook.Path & "\" & Client
    Client = Range("A1")
    Fichier = "Fiche " & Client & ".rtf"
    LeDocWord.SaveAs Chemin & "\" & Fichier
    'Quitter Word
    ObjWord.Quit
    Set ObjWord = Nothing

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

Discussions similaires

  1. [VBA]Fonction 'ajout' en vba sur une table
    Par rico63 dans le forum VBA Access
    Réponses: 15
    Dernier message: 28/03/2007, 16h56
  2. Comment écrire dans une cellule la fonction SUM en vba?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/02/2007, 19h24
  3. Fonction excel en VBA
    Par Gary US dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2006, 17h39
  4. Fonction Yield en VBA sans Automation
    Par laurentcr dans le forum Access
    Réponses: 7
    Dernier message: 02/10/2006, 14h43
  5. Réponses: 1
    Dernier message: 14/10/2005, 15h36

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