Forum Clubic

Probleme avec excel et mysql

bonjour ;
voila en gros je rentre le lien d’une image sous excel…

les noms d’images sont du type image1.jpg, image2.jpg…en fonction de la case B1, B2 etc…alors je voudrais d’abord savoir comment le numéro suivant image s’incremente tout seul quand je fais coulisser la conlonne…
et ensuite je voudrais savoir si quand j’importe le fichier excel dans mysql la case du lien et bien a l’interieur de mysql se trouve le resultat de la fonction
et nn pas la fonction elle meme !!

J’avoue que là, j’ai pas tout compris à ton problème… :confused:

mdr…je vais recommencer :D:D
dans mes champs excel j’ai des truc du genre " "
et le 3 qui est ecrit apres “image” correspond a l’id que j’ai dans toute ma colonne B…donc la c’est la 3eme ligne. :whistle:
et donc je voudrais qu’au lieu d’etre obligé de tout recopier a chaque fois en faisant coulisser (dans le coin bas droite de la case excel …) que tt ceci se fasse tout seul…autrement dit ma ligne 4 je veux qu’elle soit : " "
:etonne::etonne: lol
et donc voila je voudrais que sa se fasse tt seul autrement dit

Ouais, donc, grosso modo, le pb c’est que comme c’est du texte qu’il y a dans ta colonne B, ben l’auto-incrémentation, tu peux oublier…

Donc, voici mon petit conseil : une macro en VBA !

Si tu sais pas comment, laisse moi quelques minutes et je te fais ça. :super:

ok ben non je ne sais absolument pas faire ca :paf:
je n’y ai jamais touché !!! :neutre:
Edité le 06/06/2008 à 11:06

Un truc du genre
=" " ?

Oui, ça aussi ça marche. Mais ça ne change pas son pb qui fait qu’il va être obligé de faire un clic en coin de cellule, et d’étendre le tout…
Edité le 06/06/2008 à 13:01

Donc, voilà ce que donne ce que j’ai fait :


Const INIT_LINE = 1 'N° de la ligne où commence le traitement (1ère ligne de données avec imageX.jpg)
Const MAX_LINES = 50 'Ici, tu mets le nombres de lignes qui seront à changer
Const WORKING_COL = 2 'N° de colonne à traiter (A = 1, B = 2, C = 3, etc…)

Dim AlreadyChanging As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim CurrLine As Integer 'Compteur de la ligne courante
Dim CurrCarac As Integer 'Compteur du caractère courant dans la chaîne
Dim TextBeforeNb As String 'Chaîne de caractères se trouvant avant le n° de l’image
Dim TextAfterNb As String 'Chaine de caractères se trouvant après le n° de l’image
Dim AfterNb As Boolean

If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then

    If Target.Column = WORKING_COL And Not AlreadyChanging Then

        If Target.Value <> Empty Then
    
            AlreadyChanging = True

            If Target.Row = INIT_LINE Then
    
                CurrLine = INIT_LINE + 1
        
            Else
    
                CurrLine = INIT_LINE
        
            End If
    
            Do
                If CurrLine <> Target.Row Then
            
                    AfterNb = False
                    TextBeforeNb = Empty
                    TextAfterNb = Empty
            
                    For CurrCarac = 1 To Len(Target.Value)
            
                        If Not IsNumeric(Mid(Target.Value, CurrCarac, 1)) Then
                
                            If Not AfterNb Then
                    
                                TextBeforeNb = TextBeforeNb & Mid(Target.Value, CurrCarac, 1)
                        
                            Else
                    
                                TextAfterNb = TextAfterNb & Mid(Target.Value, CurrCarac, 1)
                        
                            End If
                    
                        Else
                
                            AfterNb = True
                    
                        End If
                
                    Next CurrCarac
            
                    Cells(CurrLine, WORKING_COL).Value = TextBeforeNb & CStr(CurrLine) & TextAfterNb
            
                End If
        
                CurrLine = CurrLine + 1
        
            Loop While CurrLine <= MAX_LINES
    
            AlreadyChanging = False
    
        End If

    End If
    
End If

End Sub


Pour utiliser code, il te faut, depuis Excel, faire Alt + F11. Ca va ouvrir l’éditeur VBA.
Dans l’arborescence de gauche, tu choisis bien la feuille Excel où tu travailles en double cliquant dessus.
Tu colles le code tel quel sur la page qui se sera ouverte.
T’enregistre.
Et voilà !

Alors, c’est pas parfait, hein ?! Tout simplement car c’est très spécifique à ta demande.
Ca se contente de regarder si dans la colonne B (ou une autre, c’est défini par une constante), tu fais une modif’, je prends le texte qu’il y a dedans et je le copie dans X lignes (aussi définies en constante) à partir de la ligne Y (toujours définie en constante), le tout en faisant bien attention que dans la ligne 1, j’ai le n° 1, dans la ligne 2, j’ai le n°2, etc… si il y a 1 nombre dans ta chaîne de caractères !!
Sinon, ça risque d’être le grand n’importe quoi…

Je te laisse essayer, et si t’as des questions, ben reviens ici !
Edité le 06/06/2008 à 12:58

Non, un simple double clic dans le coin bas de la cellule va étendre la formule jusqu’à la dernière ligne utilisée

merci pour votre aide :wink:

Et t’as utilisé quoi au final ?

j’ai essayé les 2 et je me sert de ta macro :smiley:

Ok ! :super:

encore une petite question …j’ai essayé ca aussi =" "
sa marche plutot bien mais ce que je ne comprend pas c’est qu’a chaque fois que je ferme le fichier excel et que je le rouvre a nouveau la valeur de la fonction est affiché et nn pas la fonction…dc en gros apres quand je fais coulisser il n’y a qu’une seule valeur qui est prise en compte !!..pk ?

:sweet:

Pas normal
Tu peux dire exactement ce que tu as avant et ce que tu as après ?

Edit:
tu travailles en notation L1C1 ou en notation A1 ?
Edité le 09/06/2008 à 15:43

Kesako ?? lol… :ane:
sinon ben au debut j’ai ca : =" "
et apres fermeture et re-ouverture j’ai ca :
voila donc le pb c’est que la fonction ne reste pas donc si j’ai un nouvel enregistrement a faire et ben je dois tout retaper :paf:

Tu travailles en notation A1 (sinon, là où tu as la référence B2, tu aurais eu L2C2)
C’était pour refaire un test dans les mêmes conditions que toi.
Chez moi, c’est bon (excel 2002)
Juste pour être sûr qu’on parle bien de la même chose : tu regardes bien dans la barre de formule, et pas dans le contenu de la cellule ?

oui oui je regarde bien dans la barre superieure…par contre je suis sous office 2007 ca peut venir de ca ??? :etonne2:

Peut être une option qui enregistre les valeurs à la place des formules ?
Je ne connais pas le 2007

Essaie un enregistrement en compatibilité 2003 voir si ca change quelque chose